首页 > 解决方案 > 即使是现成的 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?

标签: djangodjango-models

解决方案


models.py什至需要现成的mysql数据库吗?

不需要构建模型。一些(小型)网络服务器甚至是完全无状态的,因此不使用数据库。但是 Django 如何帮助你的很大一部分是基于模型的。

您可以编写自己的查询、表单等。但通常通过使用ModelFormDjango 可以删除大量样板代码。这将进一步降低您的代码中出现错误的可能性。因此,尽管不是绝对必要的,但模型通常是 Django 如何帮助您的基石。

您可以使用inspectdb[Django-doc]命令检查数据库,并让 Django 为您“绘制”模型。通常你还有一些工作。例如,由于 Django 不能派生字段是 an EmailField,因为 aCharFieldEmailField在数据库端看起来完全相同。

但是,您不需要使用inspectdb。您可以构建自己的模型。如果您创建自己的模型,但这些模型已经存在于数据库端,您可能希望在模型中设置[ managed = FalseDjango-doc]Meta,以防止 Django 构建迁移。


推荐阅读