新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:Flask框架如何讓模型和數(shù)據(jù)同步
使用ORM時(shí),需要執(zhí)行遷移操作以便在模型和持久化數(shù)據(jù)之間保持同步。我們使用Flask-Migrate這個(gè)擴(kuò)展來(lái)完成該任務(wù)。
首先安裝:
$ pip install flask-migrate $ pip install flask_script
然后在代碼中引入:
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand
進(jìn)行必要的配置:
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
運(yùn)行管理器:
if __name__ == '__main__': manager.run()
相關(guān)推薦:《python視頻教程》
完整的代碼如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/appdb'db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)class Post(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(80), unique=True)
post_text = db.Column(db.String(255))
def __init__(self, title, post_text):
self.title = title
self.post_text = [email protected]('/')def index():
return "Hello World"if __name__ == "__main__":
manager.run()
使用如下的命令初始化Alembic:
$ python app.py db init Creating directory /Users/Vihar/Desktop/flask-databases/migrations ... done ... ... ... Generating /Users/Vihar/Desktop/flask-databases/migrations/alembic.ini ... done
執(zhí)行第一個(gè)遷移任務(wù):
$ python app.py db migrate INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. INFO [alembic.autogenerate.compare] Detected added table 'post'Generating /Users/Vihar/Desktop/flask-databases/migrations/versions/ed3b3a028447_.py ... done
一旦上述命令執(zhí)行完畢,我們的數(shù)據(jù)表就會(huì)創(chuàng)建成功?,F(xiàn)在更新數(shù)據(jù)庫(kù):
$ python app.py db upgrade
相關(guān)推薦:
Flask框架如何連接數(shù)據(jù)庫(kù)
網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)Python教程:Flask框架如何讓模型和數(shù)據(jù)同步
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/djpisgp.html


咨詢
建站咨詢
