zoukankan      html  css  js  c++  java
  • Django(ORM常用字段)

    day68

    参考:http://www.cnblogs.com/liwenzhou/p/8688919.html

    1. Django ORM常用字段:
                1. AutoField       --> 自增
                2. CharField       --> varchar(xx)
                3. ForeignKey      --> 外键
                4. ManyToManyField --> 多对多关联
                
                5. DateField
                6. DateTimeField
                
                7. IntegerField
           

    2. 自定义char字段
                class FixedCharField(models.Field):
                    """
                    自定义的char类型的字段类
                    """
                    def __init__(self, max_length, *args, **kwargs):
                        self.max_length = max_length
                        super(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs)
     
                    def db_type(self, connection):
                        """
                        限定生成数据库表的字段类型为char,长度为max_length指定的值
                        """
                        return 'char(%s)' % self.max_length
     
    3. 常用的字段参数
                1. null
                2. default
                3. unique
                4. db_index
                
                5. DateField和DateTimeField才有的参数:
                    auto_now_add=True     --> 创建数据的时候自动把当前时间赋值
                    auto_add=True         --> 每次更新数据的时候更新当前时间
                    
                    上述两个不能同时设置!!!
                
                5. class Meta:
                     db_table = "表名"

    Django ORM 常用字段和参数

    常用字段

    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()实例。

    时间字段独有

    DatetimeField、DateField、TimeField这个三个时间字段,都可以设置如下属性。

    auto_now_add

    配置auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库。

    auto_now

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

    实践

    字段参数

    null

    用于表示某个字段可以为空。

    unique

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

    db_index

    如果db_index=True 则代表着为此字段设置数据库索引。

    default

    为该字段设置默认值。

    元信息

    ORM对应的类里面包含另一个Meta类,而Meta类封装了一些数据库的信息。主要字段如下:

    db_table

    ORM在数据库中的表名默认是 app_类名,可以通过db_table可以重写表名

    index_together

    联合索引。

    unique_together

    联合唯一索引。

    ordering

    指定默认按什么字段排序。

    只有设置了该属性,我们查询到的结果才可以被reverse()。

     

  • 相关阅读:
    java反射机制2
    Java反射机制
    EKT Java企业级关键技术强化 Enterprise Edition
    idea导入tomcat后解决控制台中文乱码问题(day12)
    大对象数据LOB的应用 (day10)
    Java关键技术强化:JDK5.0新特性 (day08)
    Java关键技术强化:JDK5.0新特性1 (day07)
    Java高效特性:反射(二)之获取Class对象的四种方式及其区别 (day06)
    Java关键技术强化:类加载器 (day05)
    Java高级特效:反射 (day04)
  • 原文地址:https://www.cnblogs.com/112358nizhipeng/p/10443220.html
Copyright © 2011-2022 走看看