zoukankan      html  css  js  c++  java
  • Python-Django-常用字段和参数

    -1 表模型如果不写主键,orm会自动创建一个主键
    -2 常用字段

    AutoField
    int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。
    IntegerField
    一个整数类型,范围在 -2147483648 to 2147483647。
    CharField
    字符类型,必须提供max_length参数, max_length表示字符长度。
    DateField
    日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。
    DateTimeField
    日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例
    BooleanField
    -对到数据库int类型

    不常用

    SmallIntegerField
    TextField:大文本
    EmailField:虽然写的是email,存的时候,只要是字符串就可以(admin内的校验)
    FileField(Field):存文件
    DecimalField

    -orm字段参数

    -null
    -unique:唯一性约束
    -db_index:给某个字段加索引  

    增加索引:
    方式一
    nickname = models.CharField(max_length=256,db_index=True)
    方式二
    class Meta:
      indexs=[models.Index(fields=['nickname'])]

    django 中主键必须是索引,外键默认是索引
    -default
    - DateField和DateTimeField
    # auto_now_add=True 表示我要新增一条数据,自动设成当前时间
    # auto_now=True 只要修改,就更新成当前时间

    -关系字段:

    -ForeignKey

    -to
    -to_field
    -related_name
    -related_query_name
    -on_delete:
    在删除的时候,做什么操作
    -models.CASCADE 可以级联删除(lqz觉得不好)
    -models.SET_NULL (lqz推荐用它)
    -models.SET_DEFAULT

    -OneToOneField

    -同ForeignKey

    -ManyToManyField

    -自关联(自己关联)
    -评论表
    id user article content parent_id
    1 1 1 你好 null
    2 2 1 傻逼 1

    -多对多关系自动,手动创建第三张表(中介模型)

    第一种:全部手动创建,book跟author没有关联关系(不好,不建议使用)
    第二种:自动创建第三张表(不太好,第三张表如果有其它字段,就不行了)
    第三张:手动创建第三张表,并且用ManyToMany关联,所有的查询跟之前一样,只是增,删,改,需要通过表模型来处理

    -db_constraint=False

    -only和defer   

    # 总结
    # only和defer 返回结果是queryset对象内包裹表模型的对象
    # only,就是只查我指定的字段,一定会包含id 注意:没查的字段不要再用了
    # defer,指定不取哪个字段,一定会包含id 注意:没查的字段不要再用了

  • 相关阅读:
    ajax请求发送json数据
    jQuery与Prototype冲突解决办法
    cookie设置HttpOnly、Secure属性
    web.config,system.web中加<machineKey
    登陆页面粒子效果
    cmd命令登陆oracle
    oracle 千万级数据表增加索引
    springboot报错:expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    数据库备份
    unixbench性能测试跑分工具
  • 原文地址:https://www.cnblogs.com/du-jun/p/10276822.html
Copyright © 2011-2022 走看看