安装依赖
代码命令:
pip install flask-script==2.0.6
效果图:
托管应用
演示代码:
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
#.......其他初始化代码(Bootstrap等其他内容)
#.......视图函数代码......
#使用flask_script提供的Manager )对app进行托管
manager = Manager(app)
if __name__ == '__main__':
#将原来直接运行app的代码更改为从manager运行
manager.run()
演示流程:
第一步:
获取项目所在位置,将鼠标指针指向项目位置,单击鼠标右键,在快捷菜单中选择“Copy Path”选项,复制路径。
效果图:
第二步:
打开命令提示符窗口,输入“cd: [路径]”。
代码命令:
C:\Users\86131>cd C:\Users\86131\PycharmProjects\Mysql-flask
效果图:
第三步:
输入“python app.py”启动对应的Flask项目。
代码命令:
C:\Users\86131\PycharmProjects\Mysql-flask>python app.py
效果图:
注册命令
演示代码:
# 注册命令到manager
@manager.command
def test():
print('这是一个测试用的命令')
效果图:
运行命令:
C:\Users\86131\PycharmProjects\Mysql-flask>python app.py test
创建交互式shell
演示代码:
#此处users变量需要在shell环境中直接访问
users = ['Bill', 'Hunter', 'Carlos']
#该函数用于创建shell上下文, 将对象注册到shell(类似于环境变量)
def make_shell_context():
return dict(
users=users,
)
manager.add_command("shell", Shell(make_context=make_shell_context))
效果图:
演示代码:
C:\Users\86131\PycharmProjects\Mysql-flask>python app.py shell
常见问题:
ModuleNotFoundError: No module named ‘flask_script‘
问题原因:
没有安装flask_script模板。
解决方法:
安装flask-script==2.0.6的版本的模板即可。
pip install flask-script==2.0.6
ModuleNotFoundError: No module named 'flask._compat'
问题原因:
因为flask版本过高,flask里面的 ._compat.py文件没有。
解决方法:
降低到flask==1.1.2版本即可。
pip3 install flask==1.1.2
ImportError: cannot import name ‘escape‘ from ‘jinja2‘
问题原因:
原因是jinja2库版本过低。
解决方法:
将jinja2模块更新到jinja2==3.0.3版本即可。
pip install jinja2==3.0.3
ImportError: cannot import name ‘json‘ from ‘itsdangerous‘
问题原因:
因为falsk和对应模块的版本不兼容导致。
解决方法:
将itsdangerous模块降低到itsdangerous==2.0.1的版本即可。
pip3 install itsdangerous==2.0.1
ImportError: cannot import name ‘BaseResponse‘ from ‘werkzeug.wrappers‘
问题原因:
在从werkzeug.wrappers模块导入BaseResponse时出现了问题。
解决方法:
将werkzeug模块降级到werkzeug==0.16.1的版本即可。
pip install --upgrade werkzeug==0.16.1
注意事项:当使用注册命令@manager时,应该位于manager = Manager(app)之后。