Python-web框架程序启动详解manage.py
#!/usr/bin/env python#-*- coding:utf-8 -*-import osfrom app import create_app, dbfrom app.admin.models import Assetfrom app.auth.models import LoginUserfrom flask_script import Manager, Shellfrom flas
·
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os
from app import create_app, db
from app.admin.models import Asset
from app.auth.models import LoginUser
from flask_script import Manager, Shell
from flask_migrate import Migrate, MigrateCommand
# 使用指定配置初始化创建flask app,配置文件包括生产配置、开发配置、单元测试配置
app = create_app(os.getenv('SrcPM_CONFIG') or 'default')
# 关闭flask app debug 模式
app.debug = False
# 创建flask里app
app = create_app()
# 创建数据库迁移工具对象的步足有3步
# 1. 创建flask脚本管理工具对象
manager = Manager(app)
# 2. 创建数据库迁移工具对象
Migrate(app, db, compare_type=True)
# 3. 向manager对象中添加数据库的操作命令
# 第一个参数是给这条命令取的名字叫什么,关于数据库的我们通常叫db
# 第二个参数就是具体的命令
manager.add_command("db", MigrateCommand)
# 创建管理员 --manager的作用: 是在终端使用命令, option的作用:装饰的之后,可以传递参数
@manager.option("-u", "--username", dest="username")
@manager.option("-p", "--password", dest="password")
@manager.option("-e", "--email", dest="email")
def create_cms_user(username, password, email):
"""创建管理员用户"""
user = CMSUser(username=username, password=password, email=email)
# 添加
db.session.add(user)
try:
# 提交到数据库
db.session.commit()
except Exception as e:
print(e)
db.session.rollback()
# 返回应用和数据库连接环境,以提供对数据库的管理操作和升级
def make_shell_context():
return dict(app=app, db=db, Asset=Asset, LoginUser=LoginUser)
manager.add_command('shell', Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)
# 单元测试命令 python manage.py test
@manager.command #添加自定命令create_role 终端运行
def test():
"""Run the unit test."""
import unittest
tests = unittest.TestLoader().discover('tests')
unittest.TextTestRunner(verbosity=2).run(tests)
if __name__ == '__main__':
#运行应用程序
manager.run()
更多推荐
已为社区贡献3条内容
所有评论(0)