一、flask-migrate插件
在Django中,每次添加新的模型類,只需要執行生成遷移文件,執行遷移操作;
python manager.py makemigrations
python manager.py migrate
在Flask中,先創建一個路由對應視圖函數中db.create_all()方法,每次添加新的模型類,都要調用該路由才能創建;
flask是否可以類似于Django一樣? flask-migrate插件
https://flask-migrate.readthedocs.io/en/latest/
pip install Flask-Migrate
# 實例化Migrate對象
migrate = Migrate(app, db)
# 添加db命令
manager.add_command('db', MigrateCommand)
- flask-migrate + flask-script 使用 【更多】
$ python manage.py db init # 創建遷移遷移目錄(只需要執行一次)
$ python manage.py db migrate # 生成遷移文件
$ python manage.py db upgrade # 執行遷移(生成表單)
$ python manage.py db downgrade # 刪除表單
$ python manage.py db --help # 查看幫助文檔
二、數據庫配置
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////' + os.path.join(BASE_DIR, 'app.db')
# SQLALCHEMY_DATABASE_URI
dialect+driver://username:password@host:port/databasename
dialect 數據庫
driver 驅動
username 數據庫用戶名
password 數據庫密碼
host 數據庫主機
port 數據庫端口號
databasename 數據庫 庫名
- 安裝驅動
pip install pymysql
- 創建數據庫
create databases xxxx charset=utf8;
- 配置數據庫
URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/xxx'
app.config['SQLALCHEMY_DATABASE_URI'] = URI
三、項目拆分
flask-script
flask-blueprint
flask-session
flask-sqlalchemy
flask-migrate
__init__.py # 包
views.py # 路由、視圖函數
models.py # 模型類
settings.py # 配置
ext.py # 擴展