04flask_scripts使用
1,flask_script作用
flask_script的作用是可以通过命令行的实行来操作Flask,例如通过命令跑一个开发版本的服务器,设置数据库,定时任务等, 我们把脚本命令代码放在一个叫做manage.py的文件中,然后运行python manage.py hello命令就可以输出print后的内容了。
这里实际上用print模拟我们的操作,具体操作会替换print的内容。
2,安装flask_scripts
要使用flask_script,可以通过pip install flask_script安装最新版本。直接在pycharm安装或者使用wheel安装。
3,具体操作
主要的点和Django一样,这里新建一个manage.py文件,里面集成这些服务器功能,具体过程如下:。
#flask_script_demo.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
#manage.py
from flask_script import Manager
from flask_script_demo import app #从上面的文件中引入app
from db_scripts import DBManager #db_scripts专门写数据库相关的文件的。
manager = Manager(app)
@manager.command
def runserver():
print("服务器跑起来了!!") # “runserver”直接就写在manage.py文件中,所以在cmd命令中使用“python manage.py runserver”
# 和数据库相关的操作都放在一起
manager.add_command('db',DBManager)
# db是命令前缀,作用:区别于“runserver”直接写在manage.py文件中,这个是写在专门给数据库的文件里的,
# 前面加上“db”是便于在cmd命令中使用“python manage.py db init”,注意这个“db”,他相当于子命令
if __name__ == '__main__':
manager.run()
#db_scripts.py
from flask_script import Manager DBManager = Manager()
# 这里括号里不用加“app”,因为这里不是主文件 @DBManager.command
def init():
print("数据库初始化完成!")
@DBManager.command
def migrate():
print("数据表迁移成功!")
4,注意点
这里使用的是虚拟环境,我们运行服务器不是在pycharm里,而是在cmd里,我们进入如下文件夹(该项目根目录):

然后在框中cmd,执行下图,命名为“”python manage.py runserver”,注意这是直接写在manage.py里的函数:

我们再写manage.py调用“db_scripts.py”的文件:

效果如图:

=================================================================================================
下面我们具体讲讲“manager.add_command('db',DBManager)”的用法:
这里为什么加了个“db”?
可以看到manage.py中有这么一句:
@manager.command
def runserver():
print("服务器跑起来了!!")
这是直接存在于manage.py中的一句话,但是对于被导入到manage.py文件中的“init”和migrate而言,不能直接通过“python manage.py init”来直接运行服务器
#db_scripts.py
from flask_script import Manager DBManager = Manager()
# 这里括号里不用加“app”,因为这里不是主文件 @DBManager.command
def init():
print("数据库初始化完成!")
@DBManager.command
def migrate():
print("数据表迁移成功!")
这里的原因就是为了区别被导入文件与本身就有的文件的区别,正确的服务器运行代码应该为:python manage.py prex init
04flask_scripts使用的更多相关文章
随机推荐
- Java(15) 多态
一.多态 1.1 多态:一个事物的多种形态 1.2 多态的表现 行为(方法)多态:重写和重载. 引用多态(动态绑定):编译时的类型和运行时不一致的这种现象 例:父类 = 子类 Pet p = ne ...
- eclipse快速查看工程代码行数
1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expression),并在搜索文本框输入\n ;3.在文件名中输入*或*.jav ...
- 数据库运维平台~Yearning测试与总结
一 部署 1 docker-compose up -d 即可非常方便 2 mysql安装 3 inception安装二 默认账号 默认用户admin 密码: Yearning_admi ...
- Linux安装网易云音乐
⒈下载最新版网易云音乐安装包 http://d1.music.126.net/dmusic/netease-cloud-music_1.2.0_amd64_ubuntu_20190424_1.deb ...
- day06 字典、元组、set的方法及常用操作
今日内容: 1.深浅拷贝 2.元组 3.字典 4.set 1.深浅拷贝 # 1.值拷贝 # 采用赋值的方法进行 # 只会将堆区容器变量与栈区的绑定关系进行复制 # 2.浅拷贝 # 会将堆区与栈区的绑定 ...
- pwnable.tw applestore
存储结构 0x804B070链表头 struct _mycart_binlist { int *name; //ebp-0x20 int price; //ebp-0x1c struct _mycar ...
- gradle.properties使用
设置属性 COMPILE_SDK_VERSION = 26 BUILD_TOOLS_VERSION = 26.0.0 MIN_SDK_VERSION = 19 TARGET_SDK_VERSION = ...
- vue-router路由动态传参query和params的区别
1.query方式传参和接收参数 //路由 { path: '/detail', //这里不需要参入参数 name: "detail", component: detail//这个 ...
- spring+myBatis 配置多数据源,切换数据源
注:本文来源于 tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...
- P2255 [USACO14JAN]记录奥林比克
P2255 [USACO14JAN]记录奥林比克 题目描述 农民约翰热衷于所有寒冷天气的运动(尤其是涉及到牛的运动), 农民约翰想录下尽可能多的电视节目. 为moolympics电视时间表由N个不同的 ...