pip3 install flask-sqlalchemy
from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import Integer, String app = Flask(__name__) # 設置鏈接數據庫的URL app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8' # 設置每次請求結束後會自動提交數據庫中的改動 app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True # 查詢時會顯示原始SQL語句 app.config['SQLALCHEMY_ECHO'] = True db = SQLAlchemy(app) class User(db.Model): __tablename__ = 'user' id = db.Column(Integer, primary_key=True) name = db.Column(String(32), index=True, nullable=True) # # 刪除表 # db.drop_all() # # 建立表 # db.create_all() db.session.add(User(name='李德剛')) db.session.commit() print(User.query.all())
完整示例地址:python
pip3 install flask-script
修改上述「和藍圖一塊兒使用」示例中的 manage.py 文件:mysql
from flask_script import Manager from flask_sqlalchemy_test import app manager = Manager(app) if __name__ == '__main__': manager.run()
而後在當前目錄就能夠向 Django 同樣經過 python manage.py runserver -h [主機地址] -p [端口號] 的方式啓動 flask 項目:git
不只如此,還能夠經過自定製命令來執行函數,修改 manage.py :github
from flask_script import Manager from flask_sqlalchemy_test import app manager = Manager(app) @manager.command def test_command(num): print(num) @manager.option('-n', '--name', dest='name') @manager.option('-a', '--age', dest='age') def test_option(name, age): print(name, age) if __name__ == '__main__': manager.run()
pip3 install flask-migrate
修改上述「和藍圖一塊兒使用」示例中的 manage.py 以下:sql
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from flask_sqlalchemy_test import app, db migrate = Migrate(app, db) manager = Manager(app) manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
$ python manage.py db init # 初始化數據庫,會建立一個migations文件夾,而且會在數據庫中生成一個alembic_version表 $ python manage.py db migrate # 建立遷移歷史 $ python manage.py db upgrade # 更新數據庫