Djang的model创建的字段和参数详解
技术  /  管理员 发布于 7年前   279
class test_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的参数,表示字符的最大长度 import datetime 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-DD HH: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() # 浮点型 # import datetime # 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,可以调整为False <br data-filtered="filtered"><br data-filtered="filtered"><br data-filtered="filtered"> to和related_name也可以用在多对多的关系中,已经设计数据库,这2个属性最好都加上 <br data-filtered="filtered"> # 这个就是元类,就是我们经常说的元数据 class Meta: 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是小数部分的最大长度
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号