2019-08-25

Django 是通过 models 与数据库相对应的,一般来说,每个模型映射到单个数据库中的一个表。该模型是单一的、明确的、与你的数据有关的数据源。它包含了你所以存储的数据的基本字段和行为。

每一个模型都是 django.db.models.Model 的子类。

模型的每一个属性都对应数据库的一个字段。

Django 会自动为我们产生 database-access API。

例如:from django.db import models


          class User(models.Model):

                  name = models.CharField(max_length=50)

                  .......

Models 中的字段

1) AutoField(**options)# int 自增字段

    如果不指定主键,系统会自动添加一个主键字段到你的 model

2) BigIntegerField([**options])

3) BooleanField(**options)# boolean 或 bit

admin 中会自动将其描述为

4) CharField(max_length=None[, **options])# varchar

    CharField.max_length:字段长度的最大值,必填,Django 会根据这个喜爱数据库层和校验层限制该字段所允许的最大字符数。

admin 中会自动将其描述为

5) CommaSeparatedIntegerField(max_length=None[, **options])    # varchar

    存放逗号分隔的数值。

6) DateField([auto_now=False, auto_now_add=False, **options])# date

    DateField.auto_now:保存时自动设置该字段为现在日期,最后修改日期

    DateField.auto_now_add:当该对象第一次被创建是自动设置该字段为现在日期,创建日期

admin中会自动将其描述为,附带一个 javascript 日历和一个 “Today” 快捷键。

7) DateTimeField([auto_now=False, auto_now_add=False, **options])

    DateTimeField.auto_now、DateTimeField.auto_now_add:同 DateField 一样

    admin 中支持同 DateField 一样的附加选项。

8) DecimalField(max_digits=None, decimal_places=None[, **options])# decimal

    DecimalField.max_digits:数字中允许的最大位数

    DecimalField.decimal_places:存储的十进制位数

9) EmailField([max_length=75, **options])    # varchar

    一个带有检查 Email 合法性的 CharField

10) FileField(upload_to=None[, max_length=100, ** options])    # varchar

    FileField.upload_to:一个用于保存上载文件的本地文件系统路径,该路径由 MEDIA_ROOT 中设置的 url 中


11) FilePathField(path=None[, math=None, recursive=False, max_length=100, **options])    # varchar

    FilePathField.path:文件的绝对路径,必填

    FilePathField.match:用于过滤路径下文件名的正则表达式,该表达式将 用在文件名上(不包括路径)。

FilePathField.recursive:True 或 False,默认为 False,指定是否应包括所有子目录的路径。

例如:FilePathField(path="/home/images",match="foo.*",recursive=True)

               将匹配“/home/images/foo.gif”但不匹配“/home/images/foo/bar.gif”

12) FloatField([**options])# float

13) ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options])    # varchar

    ImageField.height_field、ImageField.width_field:如果提供这两个参数,则图片将按提供的高度和宽度规格保存。 该字段要求 Python Imaging 库。

    会检查上传的对象是否是一个合法图片。

14) IntegerField([**options])# int

    保存整数

15) IPAdressField([**options])    # varchar

    一个字符串形式的 IP 地址

16) NullBooleanField([**options])    # bit 可以设置上 null 值

    admin 用一个选择框

你可能感兴趣的:(2019-08-25)