精华内容
下载资源
问答
  • 主要介绍了Django ORM 常用字段与不常用字段汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneField ManyToManyField     常用字段 AutoField int自增列,必须...

    尊重原创,原作者链接

    浏览目录

    • 常用字段

    • 字段合集

    • 自定义字段

    • 字段参数

    • DateField和DateTimeField

    • 关系字段

    • ForeignKey

    • OneToOneField

    • ManyToManyField

     

     

    常用字段

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

    字段合集

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    AutoField(Field)

            - int自增列,必须填入参数 primary_key=True

     

        BigAutoField(AutoField)

            - bigint自增列,必须填入参数 primary_key=True

     

            注:当model中如果没有自增列,则自动会创建一个列名为id的列

            from django.db import models

     

            class UserInfo(models.Model):

                # 自动创建一个列名为id的且为自增的整数列

                username = models.CharField(max_length=32)

     

            class Group(models.Model):

                # 自定义自增列

                nid = models.AutoField(primary_key=True)

                name = models.CharField(max_length=32)

     

        SmallIntegerField(IntegerField):

            - 小整数 -32768 ~ 32767

     

        PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

            - 正小整数 0 ~ 32767

        IntegerField(Field)

            - 整数列(有符号的) -2147483648 ~ 2147483647

     

        PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

            - 正整数 0 ~ 2147483647

     

        BigIntegerField(IntegerField):

            - 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807

     

        BooleanField(Field)

            - 布尔值类型

     

        NullBooleanField(Field):

            - 可以为空的布尔值

     

        CharField(Field)

            - 字符类型

            - 必须提供max_length参数, max_length表示字符长度

     

        TextField(Field)

            - 文本类型

     

        EmailField(CharField):

            - 字符串类型,Django Admin以及ModelForm中提供验证机制

     

        IPAddressField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制

     

        GenericIPAddressField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6

            - 参数:

                protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"

                unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启此功能,需要protocol="both"

     

        URLField(CharField)

            - 字符串类型,Django Admin以及ModelForm中提供验证 URL

     

        SlugField(CharField)

            - 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)

     

        CommaSeparatedIntegerField(CharField)

            - 字符串类型,格式必须为逗号分割的数字

     

        UUIDField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证

     

        FilePathField(Field)

            - 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能

            - 参数:

                    path,                      文件夹路径

                    match=None,                正则匹配

                    recursive=False,           递归下面的文件夹

                    allow_files=True,          允许文件

                    allow_folders=False,       允许文件夹

     

        FileField(Field)

            - 字符串,路径保存在数据库,文件上传到指定目录

            - 参数:

                upload_to = ""      上传文件的保存路径

                storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

     

        ImageField(FileField)

            - 字符串,路径保存在数据库,文件上传到指定目录

            - 参数:

                upload_to = ""      上传文件的保存路径

                storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

                width_field=None,   上传图片的高度保存的数据库字段名(字符串)

                height_field=None   上传图片的宽度保存的数据库字段名(字符串)

     

        DateTimeField(DateField)

            - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]

     

        DateField(DateTimeCheckMixin, Field)

            - 日期格式      YYYY-MM-DD

     

        TimeField(DateTimeCheckMixin, Field)

            - 时间格式      HH:MM[:ss[.uuuuuu]]

     

        DurationField(Field)

            - 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型

     

        FloatField(Field)

            - 浮点型

     

        DecimalField(Field)

            - 10进制小数

            - 参数:

                max_digits,小数总长度

                decimal_places,小数位长度

     

        BinaryField(Field)

            - 二进制类型

    自定义字段

    1

    2

    3

    class UnsignedIntegerField(models.IntegerField):

        def db_type(self, connection):

            return 'integer UNSIGNED'

    自定义char类型字段:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    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

     

     

    class Class(models.Model):

        id = models.AutoField(primary_key=True)

        title = models.CharField(max_length=25)

        # 使用自定义的char类型的字段

        cname = FixedCharField(max_length=25)  

    创建的表结构: 

    附ORM字段与数据库实际字段的对应关系

      

    字段参数

    null

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

    unique

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

    db_index

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

    default

    为该字段设置默认值。

    DateField和DateTimeField

    auto_now_add

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

    auto_now

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

    关系字段

    ForeignKey

    外键类型在ORM中用来表示外键关联关系,一般把ForeignKey字段设置在 '一对多'中'多'的一方。

    ForeignKey可以和其他表做关联关系同时也可以和自身做关联关系。

    字段参数

    to

    设置要关联的表

    to_field

    设置要关联的表的字段

    related_name

    反向操作时,使用的字段名,用于代替原反向查询时的‘表名_set’

    例如:

    1

    2

    3

    4

    5

    6

    class Classes(models.Model):

        name = models.CharField(max_length=32)

     

    class Student(models.Model):

        name = models.CharField(max_length=32)

        theclass = models.ForeignKey(to="Classes")

    当我们要查询某个班级关联的所有学生(反向查询)时,我们会这么写:

    1

    models.Classes.objects.first().student_set.all()

    当我们在ForeignKey字段中添加了参数 related_name 后,  

    1

    2

    3

    class Student(models.Model):

        name = models.CharField(max_length=32)

        theclass = models.ForeignKey(to="Classes", related_name="students")

    当我们要查询某个班级关联的所有学生(反向查询)时,我们会这么写:  

    1

    models.Classes.objects.first().students.all()  

    related_query_name

    反向查询操作时,使用的连接前缀,用于替换表名。

    on_delete

    当删除关联表中的数据时,当前表与其关联的行的行为。

    models.CASCADE
    删除关联数据,与之关联也删除

    models.DO_NOTHING
    删除关联数据,引发错误IntegrityError

    models.PROTECT
    删除关联数据,引发错误ProtectedError

    models.SET_NULL
    删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)

    models.SET_DEFAULT
    删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)

    models.SET

    删除关联数据,
    a. 与之关联的值设置为指定值,设置:models.SET(值)
    b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    def func():

        return 10

     

    class MyModel(models.Model):

        user = models.ForeignKey(

            to="User",

            to_field="id"

            on_delete=models.SET(func)

        )

    db_constraint

    是否在数据库中创建外键约束,默认为True。

    OneToOneField

    一对一字段。

    通常一对一字段用来扩展已有字段。

    字段参数

    to

    设置要关联的表。

    to_field

    设置要关联的字段。

    on_delete

    同ForeignKey字段。

    ManyToManyField

    用于表示多对多的关联关系。在数据库中通过第三张表来建立关联关系。

    字段参数

    to

    设置要关联的表

    related_name

    同ForeignKey字段。

    related_query_name

    同ForeignKey字段。

    symmetrical

    仅用于多对多自关联时,指定内部是否创建反向操作的字段。默认为True。

    举个例子:

    1

    2

    3

    class Person(models.Model):

        name = models.CharField(max_length=16)

        friends = models.ManyToManyField("self")

    此时,person对象就没有person_set属性。

    1

    2

    3

    class Person(models.Model):

        name = models.CharField(max_length=16)

        friends = models.ManyToManyField("self", symmetrical=False)

    此时,person对象现在就可以使用person_set属性进行反向查询。  

    through

    在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。

    但我们也可以手动创建第三张表来管理多对多关系,此时就需要通过through来指定第三张表的表名。 

    through_fields

    设置关联的字段。

    db_table

    默认创建第三张表时,数据库中表的名称。

    元信息

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

    db_table

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

    index_together

    联合索引。

    unique_together

    联合唯一索引。

    ordering

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

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

    展开全文
  • SQL常用字段类型

    2019-09-29 15:19:01
    中文常用字段类型 1.名称类 nvarchar(10) 2.数量int 3.时间date 4.货币money 5.编号 nvarchar(10) 6.小数 decimal 7.是否 bit 转载于:https://www.cnblogs.com/...

    中文常用字段类型

    1.   名称类    nvarchar(10)

    2.   数量       int

    3.   时间      date

    4.   货币      money     

    5.   编号      nvarchar(10)

    6.  小数        decimal

    7.  是否      bit

    转载于:https://www.cnblogs.com/chonghanyu/p/4520089.html

    展开全文
  • ORM常用字段和参数

    2019-01-16 10:05:00
    ORM常用字段和参数 目录: ORM常用字段和参数 posted @ 2019-01-16 10:05 ChuckXue 阅读(...) 评论(...) 编辑 收藏

    ORM常用字段和参数

    目录:

    ORM常用字段和参数

    posted @ 2019-01-16 10:05 ChuckXue 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • django orm常用字段汇总

    2020-02-14 16:08:26
    常用字段 自增长字段: 1. models.AutoField() 2. models.BigAutoField() 区别:BigAutoField支持的数字更大,比如十亿、二十亿 二进制数据字段: 3. models.BinaryField() 用处:我们需要向数据表中传入二进制...

    一. 常用字段

    自增长字段:

    1. models.AutoField()
    2. models.BigAutoField()
    区别:BigAutoField支持的数字更大,比如十亿、二十亿
    

    二进制数据字段:

    3. models.BinaryField()
    用处:我们需要向数据表中传入二进制数据的时候
    

    布尔型字段:

    4. models.BooleanField()
    5. models.NullBooleanField()
    区别:第1种是不允许为空的布尔型,第2种是允许为空的布尔型
    

    整型字段:

    在MySQL数据库中整型分为长整型、短整型 等类型
    django中也实现了五种:
    models.PositiveSmallIntegerField()   # 正整数,5个字节
    models.SmallIntegerField()   # (正负)整数,6个字节
    models.PositiveIntegerField()   # 正整数, 10个字节
    models.IntegerField()   # (正负)整数,11个字节
    models.BigIntegerField()   # (正负)整数,20个字节
    

    字符串字段:

    models.CharField()   # mysql中对应的是varchar
    models.TextField()   # longtext 
    区别,第一个需要指定最大长度,第二个不需要
    

    时间日期类型:

    models.DateField()    # 年月日
    models.DateTimeField()  # 年月日 时分秒
    models.DurationField()  # int, Python 中 timedelta实现
    

    浮点型:

    models.FloatField()
    models.DecimalField()
    区别:DecimalField()需要指定整数多少位,小数多少位
    

    其他字段:

    models.EmailField()   # 邮箱
    models.ImageField()  
    models.FileField()
    models.FilePathField()
    models.URLField()
    models.UUIDField()
    models.GenericIPAddressField()
    

    二、关系型字段

    一对一字段:

    models.OneToOneField(别的数据表)
    

    多对一字段:

    models.ForeignKey(别的数据表)
    注意:如果参数是self或者是自身模型类名,属于自关联
    

    多对多字段:

    models.ManyToManyField(别的数据表)
    用法:默认或者自定义中间表
    
    展开全文
  • element验证规则一些常用字段

    千次阅读 2020-12-26 17:08:30
    验证规则一些常用字段 required:是否为必须,用于验证字段内容是否为空 type:数据类型。默认是string。常见的类型有number,boolean,integer,float,array,date,email等 pattern:正则表达式 min和max:对于...
  • Django ORM常用字段介绍

    2020-06-07 02:30:33
    常用字段介绍: CharField 用于存放字符类型的数据,需要指定长度max_length IntegerField integer类型,数值范围从-2127283648到2147483647 FloatField 用于存放浮点型数据 BooleanField 用于存放布尔类型的数据...
  • odoo12:常用字段属性

    千次阅读 2019-01-21 01:10:19
    常用字段属性 字段它具有可供我们定义其行为的其他属性。下面列出一些通常用作关键字参数的属性。 String 是要在用户界面中使用的字段的默认标签。除了Selection和Relation字段之外,它是第一个位置参数,因此 ...
  • 一、常用字段类型 看完上一节的基本概念之后,我们接下来了解具体实现。 来看一下上一节的一行代码 name = models.CharField(max_length=50, verbose_name="名称") 你可能要问CharField是什么鬼,它就是这个...
  • Django modles 建表常用字段 转载于:https://www.cnblogs.com/hellojesson/p/6221516.html
  • django 框架 常用字段和参数说明
  • IPEndPoint类包含应用程序连接到主机上的服务所需的主机和本地或...IPEndPoint类的常用字段、属性及说明如下表所示。 表 IPEndPoint类的常用字段、属性及说明 字段及属性 说明 MaxPort字段 指定可以分...
  • ORM 常用字段,定于语法,实例
  • Mysql常用字段

    2019-02-24 23:47:12
    MySql数据库常用函数 1. roup_concat(合并的字段) + group by
  • Flask-Sqlalchemy—常用字段类型说明

    千次阅读 2019-06-22 20:47:32
    Flask-sqlalchemy—常用字段类型说明 通用类型 String str 字符 Integer int 整型 Boolean bool 布尔型 Text str 可变大小的字符串类型 Date datetime.date Time date time.time DateTime datetime.datetime Unico....
  • Pycharm可以设置自动模板,每次创建文件时候,就会自动添加定义的信息: ...常用字段: # $ {YEAR} - 当年; # $ {MONTH} - 当月; # $ {DAY} - 当天; # $ {HOUR} - 当前的小时; # $ {MINUTE} - 当前分钟; # $ {T...
  • django模型常用字段类型 1. 字段类型 BooleanField 真/假字段,此字段的默认表单窗口小部件是CheckboxInput CharField 字符串字段,用于小到大的字符串。对于大量文本,请使用TextField。 此字段的默认表单窗口小...
  • 在基于业务建表时经常需要设计写常用字段,这边提供下常用字段的参考: CREATE TABLE `database_name`.`table_name` ( `id` bigint(18) UNSIGNED NOT NULL COMMENT '雪花算法id IdGenerate.generateId();', `...
  • 其中姓名、性别、年龄、身高,体重属于常用数据,但是籍贯、住址和联系人为不常用数据 如果每次查询都是查询所有数据,不常用的数据就会影响效率,实际又不用 常用信息表:ID(P),姓名,性别,年龄,身高,体重 ...
  • IPAddress类的常用字段、属性、方法及说明如下表所示。 表 IPAddress类的常用字段、属性、方法及说明 字段、属性及方法 说明 Any字段 提供一个IP地址,指示服务器应侦听所有网络接口上的客户端活动。该...
  • django的models常用字段、属性

    千次阅读 2018-09-13 19:08:12
    django 模型models 常用字段 1、models.AutoField  自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一个自增列,必须设置primary_key=True。 2、models.CharField...
  • Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) AutoField int(11) 自增主键,Django Model默认提供,可以被...
  • 常用字段选项(字段约束) 通过字段选项,可以实现对字段的约束: 1、 null=True  数据库中字段是否可以为空 2、 blank=True  django的 Admin 中添加数据时是否可允许空值 一般null=True & blank=True 搭配着...
  • django中的models的常用字段及属性

    千次阅读 2018-12-04 17:58:24
    django 模型models 常用字段 1、models.AutoField  自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一个自增列,必须设置primary_key=True。 2、models.CharField  字符串字段 ...
  • 1.常用字段 字段名 作用 Char(field) 字符格式 IntegerField(Field) 数字格式 DateField(BaseTemporalField) 日期格式 RegexField(CharField) 自定义正则 EmailField(CharfFeld) 邮箱格式 无论...
  • YAML语法规范;在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解
  • MySQL数据类型和常用字段属性总结 这篇文章主要介绍了MySQL数据类型和常用字段属性总结,本文总结了日期和时间数据类型、数值数据类型、字符串数据类型等,需要的朋友可以参考下 这里先总结数据类型。MySQL中的...
  • Mysql常用字段操作

    2018-10-27 15:12:47
    新增字段 # sql格式 alter table 表名 add 字段字段定义; # 示例 alter table t_user add u_name varchar(32) not Null; 在指定字段后新增字段 # sql格式 alter table 表名 add 字段字段定义 after 原有字段...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,469
精华内容 8,587
关键字:

常用字段