flask-script

类似于 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')

执行效果

 

原文地址:https://www.cnblogs.com/FRESHMANS/p/8461259.html