model程序是在apps/message/models.py下面书写model的程序
1.在settingslimian加载apps/message文件;
'apps.message',
2.在model.py文件里面添加程序
#_*_ coding:utf-8 _*_
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class UserMessage(models.Model):
name = models.CharField(max_length=20,verbose_name=u"用户名")
email = models.EmailField(verbose_name=u"邮箱")
address = models.CharField(max_length=100,verbose_name=u"联系地址")
message = models.CharField(max_length=500,verbose_name=u"留言地址")
class Meta:
verbose_name = u"用户留言信息"
3.运行
3.1.点击Tools/RUN MASSAGE.py task……
3.2在命令行里添加 makemigrations message
3.3在命令行里添加 migrate message
model的相关信息
models.AutoField | 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的定义一个自增列,必须把该列设置为主键(primary_key=True) |
---|---|
models.CharField | 字符串类型字段 必须加max_length参数 |
models.BooleanField | 布尔类型字段=tinyint(1) 不能为空,Blank=True |
models.ComaSeparatedIntegerField | 用逗号分割的数字类型=varchar 继承CharField,所以必须加max_lenght参数 |
models.DateField | 日期字段类型date 参数auto_now=True表示每次更新都会更新这个时间;参数auto_now_add表示只是第一次创建时添加,之后的更新不再改变 |
models.DateTimeField | 日期字段类型datetime 同DateField的参数 |
models.Decimal | 十进制小数类型=decimal 必须指定整数位max_digits和小数位decimal_places |
models.EmailField | 字符串类型(正则表达式邮箱)=varchar 对字符串进行正则表达式验证 |
models.FloatField | 浮点类型=double |
models.IntegerField | 整形 |
models.BigIntegerField | 长整形 integer_field_ranges = { SmallIntegerField’: (-32768, 32767),‘IntegerField’: (-2147483648, 2147483647), BigIntegerField’: (-9223372036854775808, 9223372036854775807), ‘PositiveSmallIntegerField’: (0, 32767), ‘PositiveIntegerField’: (0, 2147483647), } |
models.IPAddressField | 字符串类型(ip4正则表达式) |
models.GenericIPAddressField | 字符串类型(ip4和ip6是可选的) 参数protocol可以是:both、ipv4、ipv6 验证时,会根据设置进行报错 |
models.NullBooleanField | 允许为空的布尔类型 |
models.PositiveIntegerFiel | 正Integer |
models.PositiveSmallIntegerField | 正smallInteger |
models.SlugField | 减号、下划线、字母、数字 |
models.SmallIntegerField | 数字 数据库中的字段有:tinyint、smallint、int、bigint |
models.TextField | 字符串=longtext |
models.TimeField | 时间 HH:MM[:ss[.uuuuuu]] |
models.URLField | 字符串类型,地址正则表达式 |
models.BinaryField | 二进制 |
models.ImageField | 图片 |
models.FilePathField | 文件 |
参数类型
null=Ture | 数据库中字段是否可以为空 |
---|---|
blank=True | django的Admin中添加数据时是否可允许空值 |
primary_key=False | 主键,对AutoField设置主键后,就会代替原来默认的自增id列 |
auto_now和auto_now_add | auto_now 自动创建—无论添加或修改,都是当前操作的时间 auto_now_add 自动创建—永远是创建时的时间 |
choices | GENDER_CHOICE = ( (u’M’, u’Male’), (u’F’, u’Female’), ) |
gender = models.CharField(max_length=2,choices=GENDER_CHOICE) | |
max_length | 最大长度 |
default | 默认值 |
verbose_name | Admin中字段的显示名称 |
name|db_column | 数据库中的字段名称 |
unique=True | 不允许重复 |
db_index = True | 数据库索引 |
editable=True | 在Admin里是否可编辑 |
error_messages=None | 错误提示 |
auto_created=False | 自动创建 |
help_text | 在Admin中提示帮助信息 |
validators=[] | 验证 |
upload-to | 文件上传路径 |