目录

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

表结构如下:

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
多多*3 分钟前
SQL语句练习 自学SQL网 多表查询
数据库·数据仓库·hive·hadoop·sql·mysql·mybatis
言之。11 分钟前
Go语言中的错误处理
开发语言·后端·golang
noedn33 分钟前
图像畸变-径向切向畸变实时图像RTSP推流
python·ffmpeg
Kay_Liang44 分钟前
探究排序算法的奥秘(下):快速排序、归并排序、堆排序
java·数据结构·c++·python·算法·排序算法
这儿有一堆花1 小时前
JavaScript 代码搜索框
开发语言·javascript·ecmascript
禺垣1 小时前
AdaBoost算法的原理及Python实现
人工智能·python·算法·机器学习·数据挖掘·adaboost·集成学习
maomi_95261 小时前
Mysql之数据库基础
数据库·mysql
XY.散人1 小时前
初识Redis · 分布式锁
数据库·redis·分布式
forestsea1 小时前
Java Class类文件结构
java·开发语言
Elastic 中国社区官方博客1 小时前
Elasticsearch:没有 “AG” 的 RAG?
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索