Djang的model创建的字段和参数详解
classtest_orm(models.Model): id=models.AutoField(primary_key=True) #int自增列,必须填入参数primary_key=True,当model中没有自增咧,如果不写,python会自动创建一个名为id的自增咧 age=models.IntegerField(default=12) #一个整数类型,范围-21474836648到21474836648 name=models.CharField(max_length=64) #字符类型,必须提供max_length的参数,表示字符的最大长度 importdatetime t1=models.DateField(auto_now_add=True,default=datetime.date(year=2018,month=4,day=3)) #t1=models.DateField(auto_now=True) #日期字段,日期格式,YYYY-MM-DD,相当于python中的 t2=models.DateTimeField(auto_now=True) #t2=models.DateTimeField(auto_now_add=True) #日期时间字段,格式为YYYY-MM-DDHH:MM:SS #auto_now_add:创建数据记录的时候会把当前时间添加到数据库 #auto_now:每次更新记录的时候会更新字段 t3=models.SmallIntegerField() #小整数,从-32768到32768 t4=models.PositiveIntegerField() #正整数类型,从0到21474836648 t5=models.PositiveSmallIntegerField() #正整数类型,从0到32768 t6=models.BigIntegerField() #长整数,从-9223372036854775808到9223372036854775808 t7=models.BooleanField() #布尔值类型 t8=models.NullBooleanField() #可以为空的布尔值类型 t9=models.TextField() #文本类型 t10=models.EmailField() #字符串类型,仅仅在django的admin会校验邮箱的格式 t11=models.IPAddressField() #字符串类型,仅仅在django的admin会校验ipv4的格式 t12=models.GenericIPAddressField(protocol="ipv4") #t12=models.GenericIPAddressField(protocol="ipv6") #t12=models.GenericIPAddressField(protocol="both") #字符串类型,在django的admin中会同时校验ipv4和ipv6 t13=models.URLField() #字符串类型,仅仅在django的admin会校验url的格式 t14=models.SlugField() #字符串类型,django的admin提供验证字母,数字下划线,减号 t15=models.UUIDField() t16=models.FileField() #保存路径到数据库中 t17=models.FloatField() #浮点型 #importdatetime #now=datetime.datetime.now() # #d=datetime.timedelta(days=7) # #now=now+d #上面的代码是求一个时间间隔,当前时间的的7天后的时间 #------------------------------------------------------- #字段参数 t18=models.CharField(null=True,unique=True,db_index=True,primary_key=True,max_length=64,default="aaa") #db_index:为这个字段设置索引 t19=models.ForeignKey(to="test1",to_field="name",related_name="3b",on_delete=models.CASCADE(),db_constraint=False) #to:关联那张表 #to_field:关联表的哪个字段 #related_name:反向查找的时候带起表明_set #on_delete:表示我这个字段关联的单表删除了,我这个表的数据该如何处理 #db_constraint:修改外键设置为软关联,不一定一定要从另外一张表中选,可以自定义,默认是True,可以调整为Falseto和related_name也可以用在多对多的关系中,已经设计数据库,这2个属性最好都加上 #这个就是元类,就是我们经常说的元数据 classMeta: db_table="ddddd" #设置表明 unique_together=("t12","t19") #联合唯一 index_together=("t1","t13") #联合索引,为这两列做一个索引 ordering="t19" #指定默认按照什么来排序
models.DecimalField(max_digits=4,decimal_places=2,default=34.43)
小数,max_digits是小数+总数的最大长度,decimal_places是小数部分的最大长度
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。