一拉岁、flask-migrate插件
在Django中驶乾,每次添加新的模型類,只需要執(zhí)行生成遷移文件金刁,執(zhí)行遷移操作帅涂;
python manager.py makemigrations
python manager.py migrate
在Flask中,先創(chuàng)建一個(gè)路由對(duì)應(yīng)視圖函數(shù)中db.create_all()方法尤蛮,每次添加新的模型類媳友,都要調(diào)用該路由才能創(chuàng)建;
flask是否可以類似于Django一樣产捞? flask-migrate插件
https://flask-migrate.readthedocs.io/en/latest/
pip install Flask-Migrate
# 實(shí)例化Migrate對(duì)象
migrate = Migrate(app, db)
# 添加db命令
manager.add_command('db', MigrateCommand)
- flask-migrate + flask-script 使用 【更多】
$ python manage.py db init # 創(chuàng)建遷移遷移目錄(只需要執(zhí)行一次)
$ python manage.py db migrate # 生成遷移文件
$ python manage.py db upgrade # 執(zhí)行遷移(生成表單)
$ python manage.py db downgrade # 刪除表單
$ python manage.py db --help # 查看幫助文檔
二醇锚、數(shù)據(jù)庫(kù)配置
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 數(shù)據(jù)庫(kù)
driver 驅(qū)動(dòng)
username 數(shù)據(jù)庫(kù)用戶名
password 數(shù)據(jù)庫(kù)密碼
host 數(shù)據(jù)庫(kù)主機(jī)
port 數(shù)據(jù)庫(kù)端口號(hào)
databasename 數(shù)據(jù)庫(kù) 庫(kù)名
- 安裝驅(qū)動(dòng)
pip install pymysql
- 創(chuàng)建數(shù)據(jù)庫(kù)
create databases xxxx charset=utf8;
- 配置數(shù)據(jù)庫(kù)
URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/xxx'
app.config['SQLALCHEMY_DATABASE_URI'] = URI
三、項(xiàng)目拆分
flask-script
flask-blueprint
flask-session
flask-sqlalchemy
flask-migrate
__init__.py # 包
views.py # 路由坯临、視圖函數(shù)
models.py # 模型類
settings.py # 配置
ext.py # 擴(kuò)展