Shell in FlaskScript

Shell 是个好东西 。平时需要手动做一些应用的操作的时候,Flask 的 Shell 简直是神助攻,尤其是当需要查找一个 Model 的数据的时候更爽了,看题主好像挺疑惑,那我就稍作解释一下:

首先,什么是 Flask-Script 的 Shell,Flask-Script 的 Shell 其实就是一个加载了 Flask 应用上下文的交互式环境,通过 shell, 我们可以像启动应用一样操作动态数据。

  1. make_context 这个参数的作用就是在启动的 shell 中添加默认的变量,例如你上面添加了 db、User 这些,也就是说在你启动 shell 之后就可以直接像访问默认函数/变量一样直接什么都不用 import 就可以这样用:

db.User.query.all()

如果不加这个 make_context 参数的话,需要这样做:

from application.app import db
db.User.query.all()

所以它的作用并不是只创建了一个应用上下文。

  1. 这里的通过Shell类,给manager添加的命令shell,和原来manager里面的shell是否是一样的,正如第 1 个提到的一样,这里只是增加了一些参数。

但是,原来manager里面的shell内容却不是空的,默认是有一个 app 的,因为如果你不自己加 make_context 的话,默认的代码是加了一个 app,见源码:链接描述(line: 251)

shell这样的应用上下文,可以理解为:为shell里面赋予一些数据,比如变量啊,或者数据库信息啊什么的,以提供给前面的shell来使用?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值