django中models的认识

一、关于models的认识

我们创建一个app会默认创建的文件

|-app01
  |-migrations
    |-__init__.py
  |-__init__.py
  |-admin.py
  |-apps.py
  |-models.py
  |-tests.py
  |-views.py

我们说的models就是指默认创建的那个models.py文件,我们今后关于数据库的操作都写在这个文件里面

二、关于django中的字段与MySQL中的字段对比

MySQL字段 Django方法 描述 使用频率
int IntegerField 常用
samllint SmallIntegerField
varchar CharField 要指定长度 常用
text TextField 表示很多文字的时候使用
float FloatField 相当于python中float
date DateField 相当于python中的datetime.date,models.DateTimeField() 常用于时间
boolean BooleanField 如果没指定default,默认值是None
可空的boolean NullBooleanField 表示可以为空的布尔值
邮箱 EmailField max_length=254
文件地址 FilePathField
url字段 URLField 默认max_length=200
UUID字段 UUIDField UUIDField(default=uuid.uuid4) 常用

备注,直接利用上面的时间字段生成的时间会有因为时区差修改方式(Djang开发时区差处理方式,请参考第一章的配置)

三、djangoORM中的Field可以指定的字段

参数 作用 示例 使用频率
null 默认是False,如果指定为True,表示该字段可以为空 id = IntegerField(null=True) 常用
blank 默认是False,如果指定为True,表示可以为空,blank是django给表单添加的
default 给定默认值 CharField(default='xx') 常用
primary_key 主键 id = IntergerField(primary_key=True) 常用
unique 唯一的 id = IntergerField(unique=True) 常用
DateField.auto_now 每次修改都会将当前时间更新进去,只有调用Model.save()方法才会调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及Time类才有的 update_time = models.DateTimeField(auto_now=True,null=True) 常用
DateField.auto_now_add 第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值 create_time = models.DateTimeField(auto_now_add=True,null=True) 常用

results matching ""

    No results matching ""