django orm查询语句,django 字段类型

  django orm查询语句,django 字段类型

  

  Django ORM 常用字段和参数:

  1.常用字段:

  #自动字段

  Int自增列,参数primary_key=True必须填写。如果模型中没有自行添加的列,将自动创建一个名为id的列。

  #IntegerField

  范围在-2147483648到2147483647之间的整数类型。(一般不用它来存储手机号(位数不够),用一个字符串存储就行)

  #CharField

  类型,必须提供max_length参数,max_length表示字符长度。

  提示:Django的CharField对应的是MySQL数据库中的varchar类型。没有为相应的char类型设置字段,但是Django允许我们定制新的字段。下面,我将自定义数据库对应的char类型。

  #应用上述自定义字符类型

  classClass(模型。型号):

  id=型号。AutoField(primary_key=True)

  标题=模型。CharField(max_length=32)

  class _ name=RealCharField(max _ length=16)

  Gender_choice=((1,男性)、(2,女性)、(3,机密))

  gender=models . smallingerfield(choices=gender _ choice,default=3)。需要注意的是,实际项目应用中可能会经常用到自定义字段,所以这里需要注意。

  #日期字段

  日期字段,日期格式YYYY-MM-MD,例如:2019年6月12日,相当于Python中datetime.date()的实例。

  #日期时间字段

  格式字段为yyyy-mm-ddhh3360mm [3360ss [。uuuuuu]] [tz],相当于Python中datetime.datetime()的实例。

  推荐:《Python视频教程》2.字段合集:

  自动字段(字段)

  -int是自己加的,必须填写参数primary_key=True。

  大自动字段(自动字段)

  -bigint自动添加列,必须填写参数primary_key=True。

  注意:如果模型中没有自添加列,将自动创建一个名为id的列。

  fromdjango.dbimportmodels

  classUserInfo(型号。型号):

  #自动创建一个具有列名id和自增量的整数列。

  用户名=型号。CharField(max_length=32)

  类别组(模型。型号):

  #自定义自添加列

  nid=模型。AutoField(primary_key=True)

  名称=型号。CharField(max_length=32)

  SmallIntegerField(Int

  egerField):

  -小整数-32768~32767

  PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin,IntegerField)

  -正小整数0~32767

  IntegerField(Field)

  -整数列(有符号的)-2147483648~2147483647

  PositiveIntegerField(PositiveIntegerRelDbTypeMixin,IntegerField)

  -正整数0~2147483647

  BigIntegerField(IntegerField):

  -长整型(有符号的)-9223372036854775808~9223372036854775807

  BooleanField(Field)

  -布尔值类型

  NullBooleanField(Field):

  -可以为空的布尔值

  CharField(Field)

  -字符类型

  -必须提供max_length参数,max_length表示字符长度

  TextField(Field)

  -文本类型

  EmailField(CharField):

  -字符串类型,DjangoAdmin以及ModelForm中提供验证机制

  IPAddressField(Field)

  -字符串类型,DjangoAdmin以及ModelForm中提供验证IPV4机制

  GenericIPAddressField(Field)

  -字符串类型,DjangoAdmin以及ModelForm中提供验证Ipv4和Ipv6

  -参数:

  protocol,用于指定Ipv4或Ipv6,'both',"ipv4","ipv6"

  unpack_ipv4,如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启此功能,需要protocol="both"

  URLField(CharField)

  -字符串类型,DjangoAdmin以及ModelForm中提供验证URL

  SlugField(CharField)

  -字符串类型,DjangoAdmin以及ModelForm中提供验证支持字母、数字、下划线、连接符(减号)

  CommaSeparatedIntegerField(CharField)

  -字符串类型,格式必须为逗号分割的数字

  UUIDField(Field)

  -字符串类型,DjangoAdmin以及ModelForm中提供对UUID格式的验证

  FilePathField(Field)

  -字符串,DjangoAdmin以及ModelForm中提供读取文件夹下文件的功能

  -参数:

  path,文件夹路径

  match=None,正则匹配

  recursive=False,递归下面的文件夹

  allow_files=True,允许文件

  allow_folders=False,允许文件夹

  FileField(Field)

  -字符串,路径保存在数据库,文件上传到指定目录

  -参数:

  upload_to=""上传文件的保存路径

  storage=None存储组件,默认django.core.files.storage.FileSystemStorage

  ImageField(FileField)

  -字符串,路径保存在数据库,文件上传到指定目录

  -参数:

  upload_to=""上传文件的保存路径

  storage=None存储组件,默认django.core.files.storage.FileSystemStorage

  width_field=None,上传图片的高度保存的数据库字段名(字符串)

  height_field=None上传图片的宽度保存的数据库字段名(字符串)

  DateTimeField(DateField)

  -日期+时间格式YYYY-MM-DDHH:MM[:ss[.uuuuuu]][TZ]

  DateField(DateTimeCheckMixin,Field)

  -日期格式YYYY-MM-DD

  TimeField(DateTimeCheckMixin,Field)

  -时间格式HH:MM[:ss[.uuuuuu]]

  DurationField(Field)

  -长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型

  FloatField(Field)

  -浮点型

  DecimalField(Field)

  -10进制小数

  -参数:

  max_digits,小数总长度

  decimal_places,小数位长度

  BinaryField(Field)

  -二进制类型

对应关系:

3.字段参数:

 

  #null :用于表示某个字段可以为空

  #unique :如果设置为unique = True 则该字段在此表中必须是唯一的

  # db_index :如果db_index = True 则代表着为此字段设置索引

  # default :为该字段设置默认值

  4.DateField和DateTimeField:

  #auto_now_add

  配置auto_now_add = True,创建数据记录的时候会把当前时间添加到数据库,后续操作数据不自动更新

  #auto_now

  配置上auto_now = True,每次更新数据记录的时候会更新该字段

  5.关系字段:

  #①ForeignKey

  外键类型在ORM中用表示外键关联关系,一般吧ForeignKey字段设置在‘一段多’中的多的一方,ForeignKey可以和其它表做关联关系同时也可以和自身做关联关系。

  #字段参数:

  ##to 设置要关联的表

  ##to_field 设置要关联的表的字段

  ##on_delete 当删除关联表中的数据时,当前表与其关联的行的行为

  models.CASCADE (Django2.x版本必须要设置,1.x版本默认就设置了)

  删除关联数据,与之关联也删除

  ##db_constraint 是否在数据库中创建外键约束,默认为True

  

models.DO_NOTHING

示例:

 

  

deffunc():

#②OneToOneField

 

  一对一字段

  通常一对一字段用来扩展已有字段。(通俗的说就是一个人的所有信息不是放在一张表里面的,简单的信息一张表,隐私的信息另一张表,之间通过一对一外键关联)

  #字段参数:

  ##to 设置要关联的表

  ##to_field 设置要关联的表的字段

  ##on_delete 当删除关联表中的数据时,当前与其关联的行的行为(参考ForeignKey)

  #③ManyToManyField

  多对多字段

  #字段参数:

  ##to 设置要关联的表

  ##to_field 设置要关联的表的字段

  ##on_delete 当删除关联表中的数据时,当前与其关联的行的行为

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: