Skip to content

数据库表创建

数据库准备

数据库账号: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