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使用的更多相关文章
随机推荐
- 树莓派3B+ 安装系统
安装概要步骤: 官网下载系统->刷入TF卡->设置开启显示器和SSH->通电->进入系统 1. 进入官方网站下载系统镜像 下载页面:https://www.raspberryp ...
- P3396 哈希冲突
很好的根号算法(这种思想好像叫根号分治?) 首先,暴力是Ο(n2)的 考虑预处理: for(p=1;p<=n;p++) //枚举模数 ans[p][i%p]+=value[i]; 看似很好但还是 ...
- jira7.3.6的安装步骤
准备环境:jira7.3需要jdk1.8 1.下载jira需要的版本 https://www.atlassian.com/software/jira/download 2.上传atlassian-ji ...
- String构造函数
只简单写了几个函数 class String { public: String(const char* pStr = NULL); String(const String& str); vir ...
- ueditor接入秀米编辑器
秀米编辑器用来编辑微信页面很方便,功能也比较强大.秀米提供了第三方编辑器接入的功能,接入方法可以参照官网示例:http://hgs.xiumi.us/uedit/ 但是这里有几点要注意: 1. 示例中 ...
- java错误分类
IllegalArgumentException 回直接crashError
- python 类的魔法函数 内置函数 类方法 静态方法 抽象类
魔法函数 __init__函数 init函数会在实例化A这个类的时候被调用 class A(): def __init__(self): print('__init__函数') a = A() 显示结 ...
- boston_housing-多分类问题
from keras.datasets import boston_housing import numpy as np from keras import models from keras imp ...
- 游记-HNOI2019
Day -1 最后一场考试依旧没有ak(达成成就:\(\mathrm{OI}\) 生涯 AK 次数仅一次) Day 0 听dalao们说现在做题已经没有意义了,不如多口胡几道题,拓展视野 虽然很抗拒但 ...
- 微信小程序开发学习(二)
一些官方API 总结了一些官方API,便于之后有用时针对性查找(发现官方给了好多好用的API)官方API文档 基础 wx.canIUse:判断小程序的API,回调,参数,组件等是否在当前版本可用,返回 ...