一周学会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表:

表结构如下:

相关推荐
sunshine22 girl几秒前
Java学习一 环境配置1 安装JDK,配置环境变量
java·开发语言·学习
三844几秒前
SSRF 从入门到实战(下篇):gopher 打 Redis 实现 RCE
数据库·redis·缓存
似水এ᭄往昔5 分钟前
【Qt】--常用控件(按钮类控件)
开发语言·qt
2601_962295995 分钟前
Spark 和 Kafka 实现 Python 大规模情感分析
python·spark·kafka·情感分析·大规模处理
计算机源码社9 分钟前
分享一个基于大数据的跨平台内容生态画像与互动等级分析系统,基于Hadoop+Spark的社交媒体互动数据可视化大屏分析
大数据·hadoop·python·机器学习·数据挖掘·spark·毕业设计
minhuan13 分钟前
基于Playwright数据采集,大模型对接Flask+SQLite,平滑升级向量库与分布式微服务26.5
人工智能·flask·大模型应用·大模型业务集成·微服务架构演进
砚底藏山河16 分钟前
行情工程实战 M01|存储选型 CSVSQLiteMySQL
java·python·金融·maven
范什么特西18 分钟前
一些常用名词
开发语言·前端·javascript
承渊政道20 分钟前
从GB到TB:KFS如何实现高吞吐、有序的异构增量同步
数据库·kingbase·延迟优化·kfs·数据量级优化
在所不辞兄31 分钟前
【零基础学智能仿真-11】CatBoost——让材料类型和边界条件参与力学预测
人工智能·python·深度学习·神经网络·机器学习·工程技术