django - 即使是现成的 mysql 数据库,我也需要 models.py 吗?
问题描述
我启动了一个 django 项目。之后,我没有编写 models.py,而是从 MySQL 命令行(独立于 django)创建了一个数据库,并创建了三个包含所需列的表。最后,我成功地将我的 django 应用程序与该数据库连接起来。我应用了迁移。但是现在我很困惑我是否需要用列中的每个字段名称编写models.py?
我记得实现了一个基本项目,其中我确实编写了models.py并使用“python manage.py shell”创建了数据库,然后使用“from polls.models import Choice, Question”放置了值?我现在如何最初放置数据,然后在 UI 的某些操作上使用 python?
解决方案
我
models.py
什至需要现成的mysql数据库吗?
您不需要构建模型。一些(小型)网络服务器甚至是完全无状态的,因此不使用数据库。但是 Django 如何帮助你的很大一部分是基于模型的。
您可以编写自己的查询、表单等。但通常通过使用ModelForm
Django 可以删除大量样板代码。这将进一步降低您的代码中出现错误的可能性。因此,尽管不是绝对必要的,但模型通常是 Django 如何帮助您的基石。
您可以使用inspectdb
[Django-doc]命令检查数据库,并让 Django 为您“绘制”模型。通常你还有一些工作。例如,由于 Django 不能派生字段是 an EmailField
,因为 aCharField
和EmailField
在数据库端看起来完全相同。
但是,您不需要使用inspectdb
。您可以构建自己的模型。如果您创建自己的模型,但这些模型已经存在于数据库端,您可能希望在模型中设置[ managed = False
Django-doc]Meta
,以防止 Django 构建迁移。
推荐阅读
- javascript - 清除带有初始值 React 的 Formik 字段
- python - Opencv、Tkinter、Python 3、Mac 上的导入 imutils 错误
- r - ggplot2 在 X 轴上强制日期时间(格式化 HH:MM)
- python - 如何让敌人随机飘来飘去?
- java - 如何在 MVVM 中调用网络两次?
- ada - Ada : 检查除法的结果是否没有十进制数
- kotlin - 有人可以解释这个 Kotlin 表达式吗?
- r - 解释“Rprof”的内存分析输出
- c# - Razor Pages Post 返回 400
- ios - TapGestureRecognizer 在另一个类中调用函数并访问第一类的变量