📜  Django 模型数据类型和字段列表(1)

📅  最后修改于: 2023-12-03 15:14:44.256000             🧑  作者: Mango

Django 模型数据类型和字段列表

Django是一种高效的Web框架,具有强大的数据模型,使数据管理变得简单、快速和安全。本篇文章将介绍Django中可用的模型数据类型和字段列表,帮助程序员更好地管理数据。

常见模型数据类型
CharField

CharField是一个字符串类型,在数据库中,它对应的是字符型VARCHAR字段,可以设置最大字符数。在Django中,CharField通常用于表示文本、标题、标签等等。

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    description = models.CharField(max_length=500)
TextField

TextField也是一个字符串类型,但是可以存储更长的文本数据。在数据库中,它对应的是TEXT字段。在Django中,TextField通常用于表示文章、评论等等大段文本。

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=255)
    content = models.TextField()
IntegerField

IntegerField是表示整数类型的字段。可以定义范围并设置默认值。在数据库中,它对应的是整型INT字段。

from django.db import models

class Share(models.Model):
    stock = models.CharField(max_length=50)
    quantity = models.IntegerField(default=0)
SmallIntegerField

SmallIntegerField是表示小整数类型的字段。可以定义范围并设置默认值。在数据库中,它对应的是短整型SMALLINT字段。

from django.db import models

class Player(models.Model):
    name = models.CharField(max_length=50)
    age = models.SmallIntegerField()
BooleanField

BooleanField是表示布尔类型的字段。可以设置默认值为True或False。在数据库中,它对应的是布尔类型BOOL字段。

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=50)
    is_active = models.BooleanField(default=False)
DecimalField

DecimalField是表示小数类型的字段。可以定义总位数和小数位数。在数据库中,它对应的是DECIMAL字段。

from django.db import models

class Order(models.Model):
    total_price = models.DecimalField(max_digits=10, decimal_places=2)
DateField

DateField是表示日期类型的字段。在数据库中,它对应的是DATE字段。可以设置默认值和日期格式。

from django.db import models

class Event(models.Model):
    name = models.CharField(max_length=50)
    date = models.DateField()
DateTimeField

DateTimeField是表示日期时间类型的字段。在数据库中,它对应的是DATETIME字段。可以设置默认值和日期格式。

from django.db import models

class Event(models.Model):
    name = models.CharField(max_length=50)
    date_time = models.DateTimeField()
特殊数据类型
ForeignKey

ForeignKey是一种特殊类型的字段,用于定义模型之间的关系。在Django中,ForeignKey表示一对多的关系,即一个模型实例关联到另一个模型实例。例如,一个Bolg模型可以有多个Post模型,而一个Post模型只属于一个Bolg模型。

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=50)
    tagline = models.TextField()

class Post(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    title = models.CharField(max_length=255)
ManyToManyField

ManyToManyField是表示多对多关系的字段。在数据库中,ManyToManyField需要创建一个中间表。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)

class Group(models.Model):
    name = models.CharField(max_length=50)
    members = models.ManyToManyField(Person)
OneToOneField

OneToOneField也是一种特殊类型的字段,在Django中,它表示两个模型之间的唯一关联。在数据库中,它对应的是一对一字段。例如,一个Person模型只能有一个IDCard模型,而一个IDCard模型只能对应一个Person模型。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)

class IDCard(models.Model):
    person = models.OneToOneField(Person, on_delete=models.CASCADE)
    number = models.CharField(max_length=20)
结论

此文介绍了Django中常见的模型数据类型和特殊的数据类型,帮助程序员更好地管理数据。在实际开发中,合理使用这些数据类型和字段列表,可以让你的应用程序更加健壮、简单、高效。