flask models循環使用和migrate遷移腳本

使用models目的是爲了將建立數據庫模型的代碼與主程序代碼分離,migrate的做用就是在數據庫字段改變時不用drop表直接作更新操做sql

新建 models.py  exts.py manage.py,程序入口 flask_test.py數據庫

 

manage.pyflask

#-*-coding:utf-8-*-  from flask_script import Manager                 from flask_test import app                    #導入應用 #from db_script import db_manager from flask_migrate import Migrate,MigrateCommand        #導入migrate相關的模塊 from exts import db                          #導入db對象 from models import  *                      #從models導入數據庫模型(數據庫要建立的表) migrate = Migrate(app,db)                  #初始化migrate對象,綁定app應用和db manager = Manager(app) manager.add_command('dbupgrade',MigrateCommand)       #把migratecommand命令添加到manager中,dbupgrade爲自定義的名稱  @manager.command def runserver(): app.run(host='192.168.132.130',debug=True) manager.add_command('db',db_manager) if __name__ == '__main__': manager.run()

 

exts.pysession

#-*-coding:utf-8-*-
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()

 

models.pyapp

#-*-coding:utf-8-*-

from exts import db class User(db.Model): __tablename__  = 'user' id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(100),nullable=False) password = db.Column(db.String(32),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'))

 

主程序文件flask_test.pyspa

from flask import Flask,session from exts import db import config app = Flask(__name__) app.config.from_object(config) db.init_app(app)  #數據庫初始化當前app
 @app.route('/') def index(): return 'Hello World!'

if __name__ == '__main__': app.run(host='192.168.132.130',debug=True)

 

migrate執行debug

 注意:若是在次修改數據庫模型,直接執行 migrate 後執行 upgrade便可code

相關文章
相關標籤/搜索