【Django基础】1、Django ORM字段类型及字段类型详解

一、字段类型
字符串类型

CharField() # 字符类型   -参数: 必须提供max_length参数, 表示字符长度 如
CharField(max_length=10) TextField() # 文本类型 EmailField()   # Django
Admin以及ModelForm中提供验证机制 IPAddressField()    # Django
Admin以及ModelForm中提供验证 IPV4 机制 GenericIPAddressField(Field)    # Django
Admin以及ModelForm中提供验证 Ipv4和Ipv6 (推荐) URLField()   # Django
Admin以及ModelForm中提供验证 URL SlugField()   # Django
Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号) FilePathField()    # Django
Admin以及ModelForm中提供读取文件夹下文件的功能
  - 参数:
    path, 文件夹路径
    match=None, 正则匹配
    recursive=False, 递归下面的文件夹
    allow_files=True, 允许文件
    allow_folders=False, 允许文件夹

PS: EmailField、GenericIPAddressField、URLField等仅给django-admin使用时才有特殊功能,如果不用admin,和CharField一样都表示普通字符串

数字类型

整型   IntegerField(Field) - 整数列(有符号的) -2147483648 ~ 2147483647
  PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField) -
正整数 0 ~ 2147483647   SmallIntegerField(IntegerField): - 小整数 -32768 ~
32767   BigIntegerField(IntegerField): - 长整型(有符号的)
-9223372036854775808 - 9223372036854775807

浮点型   FloatField(Field)   DecimalField(Field) # 10进制小数

  • 参数: max_digits,小数总长度 decimal_places,小数位长度 BinaryField(Field) # 二进制类型
布尔值

BooleanField(Field) - 布尔值类型 NullBooleanField(Field) - 可以为空的布尔值

  • 自定义自增列 (当model中如果没有自增列,则自动会创建一个列名为id的列)   AutoField(primary_key=True) 必须填入参数 primary_key=True
时间类型
DateTimeField(DateField) - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
DateField(DateTimeCheckMixin, Field) - 日期格式 YYYY-MM-DD
TimeField(DateTimeCheckMixin, Field) - 时间格式 HH:MM[:ss[.uuuuuu]]
DurationField(Field) - 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型
二、 字段属性

null    -> db是否可以为空
default    -> 默认值
primary_key   -> 主键
db_column=‘xxx’   -> 列名
db_index=True   -> 索引
unique    -> 唯一索引
unique_for_date    -> 数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month  -> 数据库中字段【月】部分是否可以建立唯一索引
unique_for_year   -> 数据库中字段【年】部分是否可以建立唯一索引
auto_now_add   -> 创建时,自动生成时间
auto_now   -> 更新时,自动更新为当前时间 choices  
django admin中显示下拉框,避免连表查询(连表查询效率低)
blank   -> django admin是否可以为空
verbose_name    -> django admin显示字段中文
editable   -> django admin是否可以被编辑
error_messages    -> django admin 错误信息(欠)
help_text   -> django admin 提示
validators   -> django form 自定义错误信息(欠)

示例:

from django.db import models  
# Create your models here.  
  
class UserInfo(models.Model):   
    #  生成的表名称为app01_userinfo  
    #  会自动创建id列(自增,主键)     
    username = models.CharField(max_length=32,blank=True,verbose_name='用户名')        # 用户名列,字符串类型,指定长度  
    password = models.CharField(max_length=60, help_text='pwd')   
    email = models.EmailField(max_length=19,null=True,error_messages={'invalid': '请输入邮箱'}  
    caption = models.CharField(max_length=32,unique=True)  
    user_type_choices = ((1, '超级用户'), (2, '普通用户'),(3, '临时用户'),)   # 保存在内存中  
    user_type_id = models.IntegerField(choices=user_type_choices,default=1)  
    ctime = models.DateTimeField(auto_now_add=True, null=True)  
    mtime = models.DateTimeField(auto_now=True, null=True)  


  方式一: mtime 时间不会更新 
  obj=UserInfo.objects.filter(id=1).update(caption='CEO') 
  方式二: mtime 时间会更新 
  obj=UserInfo.objects.filter(id=1).first() 
  obj.caption = 'CEO' 
  obj.save() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈建华呦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值