MySQL数据类型与Django ORM之间的映射关系如下:
整数类型:
TINYINT
, SMALLINT
, MEDIUMINT
, INT
, BIGINT
分别对应Django的IntegerField
, SmallIntegerField
, IntegerField
, BigIntegerField
。BIT
类型对应Django的BooleanField
。浮点数类型:
FLOAT
, DOUBLE
, DECIMAL
分别对应Django的FloatField
, DoubleField
, DecimalField
。字符串类型:
CHAR
, VARCHAR
, TEXT
, MEDIUMTEXT
, LONGTEXT
分别对应Django的CharField
, CharField
, TextField
, TextField
, TextField
。VARCHAR
类型,Django中的CharField
默认最大长度为255个字符。如果需要指定最大长度,可以在定义模型时设置max_length
参数。日期和时间类型:
DATE
, TIME
, DATETIME
, TIMESTAMP
分别对应Django的DateField
, TimeField
, DateTimeField
, DateTimeField
。二进制数据类型:
BINARY
, VARBINARY
, BLOB
, MEDIUMBLOB
, LONGBLOB
分别对应Django的BinaryField
, BinaryField
, FileField
, FileField
, FileField
。其他类型:
ENUM
, SET
类型在Django中没有直接对应的类型,但可以使用CharField
结合choices
参数来实现类似的功能。NULL
类型对应Django的NullBooleanField
(仅用于布尔值)和NULL
属性(用于其他字段)。JSON
类型对应Django的JSONField
(仅适用于Django 3.1及更高版本)。在定义Django模型时,可以使用models.Field()
类来指定相应的数据类型。例如:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
age = models.IntegerField()
is_student = models.BooleanField()
birth_date = models.DateField()
email = models.EmailField()
phone_number = models.CharField(max_length=15)
address = models.TextField()
bio = models.TextField(blank=True, null=True)
这个示例定义了一个包含各种数据类型的Person
模型。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。