• Djang的model创建的字段和参数复习


    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
      


      to和related_name也可以用在多对多的关系中,已经设计数据库,这2个属性最好都加上  
    # 这个就是元类,就是我们经常说的元数据 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是小数部分的最大长度

  • 相关阅读:
    bash特性
    FHS 层级文件系统
    环境变量的问题
    linux认识
    搜索引擎的使用
    nginx
    部署操作手册
    git
    添加tag
    pycharm中使用git
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/9678442.html
Copyright © 2020-2023  润新知