【发布时间】:2015-08-08 15:59:32
【问题描述】:
假设我有下表显示了如何为 MySQL 表声明列:(我想不出一个非常现实的例子,所以这里有一些非常愚蠢的东西。这个表是在 Excel 的帮助下创建的)
我想在 Django 中创建一个模型,该模型与我将拥有的 MySQL 表与以这种方式声明的列兼容。但是,通过查看Django文档,除了主键字段之外,我找不到任何在SQL中与图片中的格式相同的模型字段类型。
我之前确实看到默认情况下,Django 处理使用 SQLite 引擎的数据库,但我想看看是否可以处理 MySQL 表的数据库。
有没有办法创建与通过 MySQL 创建的表兼容的 Django 模型字段类型,如 MEDIUMINT、TINYTEXT 和 SMALLINT(在 MySQL 中)?这只是我使用的一种方式我自己创建的表,而不是定义完所有模型后 Django 自动生成的表。
【问题讨论】:
-
Django 与数据库无关。它的所有核心字段都与所有数据库兼容。您的示例中没有特定于 MySQL 的内容。
-
我怎样才能做到这一点?比如,我如何声明一个 CharField,比如说,当我迁移应用程序时,它会创建一个 TINYTEXT 类型的列?
-
你为什么在乎?为什么字段必须是那种类型?为什么不直接创建一个 TextField?
-
那是因为我不想更改列的声明。如果我事先没有意识到我可以创建自定义字段,请原谅;另一方面,我能否创建与那些 MySQL 列具有相同数据类型的字段? (否则,我想看看我是否可以使用 Django 定义的模型字段来保存 MySQL 表上的数据。我想使用 TINYTEXT 而不是 TEXT 来节省空间。)
-
我不熟悉创建使用我之前已经创建的 MySQL 表的 Django 模型。
标签: python mysql sql django database