使用 create_all 创建模式
根据模型定义生成表
使用 create_all 创建模式 是 CoddyKit 上的免费 Flask Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Flask Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Flask Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
From Models to Tables
Your models describe tables, but the database file is still empty. You need one step to turn declarations into real tables. 🏗️
Meet create_all
db.create_all() scans every model it knows and issues the CREATE TABLE statements for you. One call builds the whole schema.
db.create_all()It Needs App Context
create_all must run inside an application context so it can find your config and the right database connection.
with app.app_context():
db.create_all()Import Models First
create_all only builds tables for models that are imported. If a model file is never loaded, its table silently goes missing.
Run It From a Shell
A clean way to set up the database is the flask shell, where the app context is already active and ready.
flask shellIt Is Safe to Re-run
create_all skips tables that already exist, so calling it twice will not crash. It simply creates whatever is missing.
It Will Not Alter Tables
Here is the catch: create_all never changes an existing table. Add a new column and the old table stays exactly as it was.
Wipe Everything with drop_all
Need a fresh start in development? db.drop_all() deletes every table and its data, so handle it with real care.
db.drop_all()Reset Pattern in Dev
A common dev reset is drop then create. It rebuilds clean tables, but it also erases all data, so never do this in production.
db.drop_all()
db.create_all()Verify the File Appeared
With SQLite, a database file like app.db shows up after create_all. Seeing it confirms your tables were actually built.
Next Step: Migrations
Because create_all cannot evolve a schema, real projects switch to migrations as soon as the model starts changing over time.
Quick Check
You added a new column to an existing model. What does create_all do?
Recap
You built tables with db.create_all() inside an app context, learned it never alters existing tables, and met drop_all. 🎉
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「使用 create_all 创建模式」课时是免费的吗?
是的 — 「使用 create_all 创建模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Flask Academy 课程的其余内容,请升级到 CoddyKit PRO。 Flask Academy 课程共包含 4 节课。
「使用 create_all 创建模式」这节课中我会学到什么?
根据模型定义生成表 你通过在浏览器中直接运行的动手代码来练习 Flask Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Flask Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Flask Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用 create_all 创建模式」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Flask Academy 课中编写并运行代码吗?
能。每节 Flask Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 安装并配置扩展
- 定义您的第一个模型类
- 列、类型与约束
- 使用 create_all 创建模式