类似于 django 下 命令行运行项目,例 python manage.py runserver ..
项目同级目录新建manage.py文件
#-*-coding:utf-8-*-
from flask_script import Manager #导入模块
from flask_test import app
from db_script import db_manager #从db_script.py文件引入db_manager对象
manager = Manager(app)
@manager.command
def runserver():
print (' start flask')
app.run(host='192.168.132.130',debug=True) #表示启动项目
manager.add_command('db',db_manager) #引入别的脚本文件,直接add_command,其中db为自定义名称,是在命令行要执行的命令,db_manager为在db_script.py文件中初始化的Manger对象
if __name__ == '__main__':
manager.run()
flask_test.py (程序入口)
from flask import Flask,session from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(100),nullable=False) class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(100),nullable=False) content = db.Column(db.Text,nullable=False) author_id = db.Column(db.Integer,db.ForeignKey('user.id')) author = db.relationship('User',backref=db.backref('articles')) db.create_all() @app.route('/') def index(): # user1 = User(username="test_flask2") # db.session.add(user1) # article = Article(title='eeee',content='cfffff') # article.author = User.query.filter(User.id==3).first() # # db.session.add(article) # db.session.commit() #article = Article.query.filter(Article.title=="eeee").first() # author_id = article.author_id # user = User.query.filter(User.username=="test_flask3") # print (user.username) #print (article.author.username) print (user.articles) return 'Hello World!' if __name__ == '__main__': app.run(host='192.168.132.130',debug=True)
数据库操作测试
db.script.py
#-*-coding:utf-8-*- from flask_script import Manager db_manager=Manager() #初始化对象 @db_manager.command def init(): print ('db init') @db_manager.command def migrate(): print ('db migrate')
执行效果