Flask-Script
Flask-Script是一个让你的命令行支持自定义命令的工具,它为Flask程序添加一个命令行解释器。可以让我们的程序从命令行直接执行相应的程序。
1、引入
from flask_script import Manager, Shell manager = Manager(app) if __name__ == 'main': manager.run()
2、创建并加入命令(引用https://www.jianshu.com/p/8148e81b42de)。
There are three methods for creating commands,即创建Command子类、使用@command修饰符、使用@option修饰符
1st:创建Command子类
#-*-coding:utf8-*- from flask_script import Manager from flask_script import Command from debug import app manager = Manager(app) class Hello(Command): "prints hello world" def run(self): print 'hello world' manager.add_command('hello', Hello()) if __name__ == '__main__': manager.run()
python manage.py hello
> hello world
2nd:使用@command修饰符
3rd:使用@option修饰符
3、集成Python shell
在《python web》第五章中,每次启动python shell会话都要导入数据库实例和模型,很麻烦。为了避免一直重复导入,我们可以做些配置让Flask-Script的Shell命令自动导入特定的对象。若想把对象添加到导入列表中,我们要为shell命令注册一个make_context回调函数
from app import create_app, db from app.models import User, Role from flask_script import Manager, Shell from flask_migrate import Migrate, MigrateCommand app = create_app('default') manager = Manager(app) migrate = Migrate(app, db)#数据库迁移 def make_shell_context():#回调函数 return dict(app=app, db=db, User=User, Role=Role) manager.add_command('shell', Shell(make_context=make_shell_context))
# 为了导出数据库迁移命令,flask_migrate提供一个MigrateCommand类,可附加到flask_script的manager对象上 manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
4、使用
python hello.py runserver --help
python hello.py runserver --host 0.0.0.0
python hello.py db init
python hello.py shell #这时候已经shell里已经导入了User、Role、db,不用每次都导入了
分类:
03Flask学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】