在 Flask-SQLAlchemy 基础上
一:启动flask项目--flask-script
1:主要用法
请先安装flask-script
manager.py
import app from flask_script import Manager my_app = app.create_app() manager = Manager(my_app) #让my_app支持Manager if __name__ == '__main__': manager.run()

from flask import Flask from flask_sqlalchemy import SQLAlchemy my_app = Flask(__name__) db = SQLAlchemy() #创建 from .views.user import user from .views.acc import acc def create_app(): # 创建数据库引擎,从init_app()源码中可以看到 my_app.config['SQLALCHEMY_DATABASE_URI']="mysql+pymysql://root:@127.0.0.1:3306/sqlal?charset=utf8" # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小 my_app.config["SQLALCHEMY_POOL_SIZE"] = 5 # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间 my_app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15 my_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False my_app.register_blueprint(acc) #注册蓝图 my_app.register_blueprint(user) db.init_app(my_app) # #初始化SQLAlchemy , 本质就是将以上的配置读取出来 return my_app
启动
(venv) E:\python\代码\Flas\blue>python manager.py runserver -h 0.0.0.0 -p 9527
2:其它用法
(1)
import app from flask_script import Manager my_app = app.create_app() manager = Manager(my_app) @manager.command def runf(): return 'sucess' if __name__ == '__main__': manager.run()
运行:
(venv) E:\python\老男孩\代码\Flas\blue>python manager.py runf sucess
(2)
import app from flask_script import Manager my_app = app.create_app() manager = Manager(my_app) @manager.option('-n','--name',dest='arg') #第一个参数是第二个的简写,需要把第三个参数传递到下面函数参数里 def openf(arg): return arg if __name__ == '__main__': manager.run()
运行
(venv) E:\python\老男孩\代码\Flas\blue>python manager.py openf -n lilz lilz (venv) E:\python\老男孩\代码\Flas\blue>python manager.py openf --name lilz lilz
(3)启动项目
import app from flask_script import Manager my_app = app.create_app() manager = Manager(my_app) @manager.option('-h','--host',dest='host') @manager.option('-p','--port',dest='port') def openf(host,port): if not host: host='127.0.0.1' if not port: port=9527 my_app.run(host,port) if __name__ == '__main__': manager.run()
启动
(venv) E:\python\老男孩\代码\Flas\blue>python manager.py openf
二:flask项目数据库迁移
请安装flask-migrate
import app from flask_script import Manager from flask_migrate import Migrate,MigrateCommand my_app = app.create_app() manager = Manager(my_app) from app import db #db:SQLAlchemy的使用 # Migrate 既然是数据库迁移,那么就得告诉他数据库在哪里 # 并且告诉他要支持那个app Migrate(my_app,db) #现在就要告诉manager 有新的指令了,这个新指令在MigrateCommand 中存着呢 manager.add_command('database',MigrateCommand) """ 数据库迁移指令: python manager.py database init python manager.py database migrate # Django中的 makemigration python manager.py database upgrade # Django中的 migrate python manager.py database --help # 查看帮助 """ @manager.option('-h','--host',dest='host') @manager.option('-p','--port',dest='port') def openf(host,port): if not host: host='127.0.0.1' if not port: port=9527 my_app.run(host,port) if __name__ == '__main__': manager.run()
参考资料:
https://www.cnblogs.com/DragonFire/p/10365963.html (Flask-Migrate)
https://www.cnblogs.com/DragonFire/p/10365827.html (Flask-Script)