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 用一个选择框