数据库表创建
数据库准备
数据库账号:root
数据库密码:root123
mysql+pymysql://root:root123@127.0.0.1:3306/zhengxin_flask_forum
先创建一个数据库
sql
create database zhengxin_flask_forum character set utf8mb4;
数据库表迁移
安装 Flask-Migrate 数据库迁移工具
安装 pymysql 作为 sqlalchemy 的数据库操作驱动
shell
poetry add Flask-Migrate
poetry add pymysql
然后在 extensions.py
导入Migrate
python
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
db = SQLAlchemy()
migrate = Migrate()
再绑定到app对象,在绑定之前需要先导入一下模型数据,不然无法创建数据表
并在 manage.py
中导入 models
,在迁移的时候以便能读取到对应模型
python
# filename: forum/__init__.py
from extensions import db, migrate
import models
def register_extensions(app):
"""注册插件"""
db.init_app(app)
migrate.init_app(app, db)
执行数据库迁移
bash
flask db init
flask db migrate -m "init"
flask db upgrade
查看数据库表是否创建完成
shell
mysql> show tables;
警告
注意:生成的迁移文件不需要提交到 git 保存,所以需要在 .gitignore 文件中添加以下内容以便忽略迁移所生成的系列文件:
migrations
测试数据的添加
先添加分类测试数据
shell
mysql> source forum_article.sql
再添加文章测试数据
shell
mysql> source forum_article.sql