flask入门 之 Python Shell (三)

1.代码:

#encoding:utf-8
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager,Shell
from flask_migrate import Migrate,MigrateCommand
from flask import Flask
 
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:[email protected]:3306/data'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
app.config['JSON_AS_ASCII']=False
db = SQLAlchemy(app)
migrate = Migrate(app,db)
manager = Manager(app)
manager.add_command('db',MigrateCommand)

Student_Teacher=db.Table(

        'Student_Teacher',
        db.Column('tea_id',db.Integer,db.ForeignKey('tea.id'),primary_key=True),
        db.Column('stu_id',db.Integer,db.ForeignKey('stu.id'),primary_key=True)
)

class Student(db.Model):
    __tablename__='stu'
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    name=db.Column(db.String(20),nullable=False)


class Teacher(db.Model):
    __tablename__='tea'
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    name=db.Column(db.String(20),nullable=False)
    students=db.relationship('Student',secondary=Student_Teacher,backref=db.backref('mytea'))

def make_shell_context():
    return dict(app=app,db=db,Student=Student,Teacher=Teacher)
manager.add_command('shell',Shell(make_context=make_shell_context))
    
if __name__=='__main__':
    manager.run()

 

2.效果: