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使用的更多相关文章
随机推荐
- python常用的内置函数哈哈
python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...
- 3、设置jsp上的类容自动更新
1.run->edit configurations进入下面的界面,并修改 On ‘Update’ action 为 Redeploy. On frame deactivation 为 ...
- python flsak 框架
1.flask 轻量级微型web框架 优点:微框架.简单.可扩展 将flask变量实例化到app变量中 如果想要flask自动加载修改后的代码,要app.run(debug=True) 2.路由和视 ...
- THUWC2019 GG记
所以要什么时候才不会出现像这样的滚粗记呢? Day-?~Day-4 我也不清楚具体干了什么 不过学了很多东西,至少相对于去年还是个小菜鸡,今年已经变成大菜鸡了 Day-3~Day-1 几乎就是复习前面 ...
- 文件的暂存(git add)
如果我们更改了之前已经被跟踪的main.c,然后执行git status $ git status On branch master Changes not staged for commit: (u ...
- JavaScript的Document ,Histroy,Location对象
1. Document对象: a) 属性: 名称 描述 alinkColor 设置或检索文档中所有活动链接的颜色 bgColor 设置或检索 Document 对象的背景色 body ...
- SqlServer如何获取存储过程的返回值
1.Output参数返回值 1 CREATE PROCEDURE [dbo].[upInformation]( 2 @age int , 3 @id bigint OUTPUT 4 ) 5 AS 6 ...
- react-高阶组件
1.高阶组件就是一个函数,传给它参数(包括组件,变量等),它返回一个新的组件 2.列如现在有这么个高阶组件,根据传入的参数name,从而从localstore中获得这个name的值,然后更新到传入的参 ...
- C# - 学习总目录
C# - 基础 C# - 操作符 C# - 值类型和引用类型 C# - 表达式与语句 C# - 数组 C# - 引用类型 C# - 常用类 C# - 常用接口 C# - LINQ 语言集成查询 C# ...
- [精品书单]3D打印机课程设计
3D打印机整个绘图过程........... 三维图 工程图 编程