Flask-Script的基本使用

本文介绍了如何在Python中使用Flask框架部署应用,包括安装flask-script依赖,以及处理常见如ModuleNotFoundError和ImportError等问题的解决方法。还展示了如何通过flask_script创建交互式shell和注册自定义命令。
摘要由CSDN通过智能技术生成

安装依赖

代码命令:

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)之后。

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值