一周学会Flask3 Python Web开发-使用SQLAlchemy动态创建数据库表

锋哥原创的Flask3 Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

前面我们定义了模型,我们可以通过sqlalchemy对象提供的create_all()方法来映射和动态创建数据库表。

因为我们用到了模块化蓝图blueprint,这个sqlalchemy对象会在app.py和蓝图模块之间互相调用,导致循环依赖问题。所以我们的解决方案是单独把sqlalchemy对象放扩展文件下,然后app.py和各个蓝图模块分别单独调用。

具体实现方案如下:

先在项目目录下新建exts.py扩展python文件。

# flask-sqlalchemy
from flask_sqlalchemy import SQLAlchemy

# 创建SQLAlchemy对象
db = SQLAlchemy()

app.py里面引入exts里的db对象:

from exts import db

然后通过init_app方法初始化sqlalchemy

# sqlalchemy初始化
db.init_app(app)

student.py里也换成exts里的db:

from exts import db

最后我们app.py里调用db的create_all()方法创建数据库表:

with app.app_context():
    # 根据模型建表
    db.create_all()

控制台输出:

db_flask数据库下动态生成了t_grade表:

表结构如下:

相关推荐
shix .4 分钟前
爬虫一些基础知识的备忘录(需要自取)
c++·爬虫·python
19岁开始学习4 分钟前
cgi,php-cgi,fastcgi,php-fpm,nginx 小记
开发语言·nginx·php
try again!9 分钟前
个性化音乐推荐系统
android·数据库·sqlite
Vitalia25 分钟前
⭐算法OJ⭐汉明距离【位操作】(C++ 实现)Hamming Distance
开发语言·c++·算法
小冯的编程学习之路30 分钟前
【QT】:QT图形化界面相关准备工作
开发语言·c++·qt
龙雨LongYu121 小时前
Go执行当前package下的所有方法
开发语言·后端·golang
安 当 加 密1 小时前
TDE透明加密:免改造实现SQLServer数据库安全存储
数据库·sqlserver
米饭好好吃.1 小时前
【Go】Go MongoDB 快速入门
开发语言·mongodb·golang
By北阳1 小时前
Go语言 vs Java语言:核心差异与适用场景解析
java·开发语言·golang
网络风云1 小时前
Django 5实用指南(十四)项目部署与性能优化【完】
python·性能优化·django