zoukankan      html  css  js  c++  java
  • ORM 之常用查询、字段类型、约束

    1.  orm常用字段类型

    # ### orm中的常用字段类型
    ''' 
    <1> CharField
            字符串字段, 用于较短的字符串.
            CharField 要求必须有一个参数 maxlength, 
            用于从数据库层和Django校验层限制该字段所允许的最大字符数.
     
    <2> IntegerField
           #用于保存一个整数.
     
    <3> FloatField
            一个浮点数. 必须 提供两个参数:         
            参数    描述
            max_digits    总位数(不包括小数点和符号)
            decimal_places    小数位数
                    举例来说, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:
                     
                    models.FloatField(..., max_digits=5, decimal_places=2)
                    要保存最大值一百万(小数点后保存10位)的话,你要这样定义:
                     
                    models.FloatField(..., max_digits=19, decimal_places=10)
                    admin 用一个文本框(<input type="text">)表示该字段保存的数据.
     
    <4> AutoField
            一个 IntegerField, 添加记录时它会自动增长. 你通常不需要直接使用这个字段;
            自定义一个主键:my_id=models.AutoField(primary_key=True)
            如果你不指定主键的话,系统会自动添加一个主键字段到你的 model.
     
    <5> BooleanField
            A true/false field. admin 用 checkbox 来表示此类字段.
     
    <6> TextField
            一个容量很大的文本字段.
            admin 用一个 <textarea> (文本区域)表示该字段数据.(一个多行编辑框).
     
    <7> EmailField
            一个带有检查Email合法性的 CharField,不接受 maxlength 参数.
     
    <8> DateField
            一个日期字段. 共有下列额外的可选参数:
            Argument    描述
            auto_now    当对象被保存时,自动将该字段的值设置为当前时间.
            通常用于表示 "last-modified" 时间戳.
            auto_now_add    当对象首次被创建时,自动将该字段的值设置为当前时间.通常用于表示对象创建时间.
            (仅仅在admin中有意义...)
     
    <9> DateTimeField
             一个日期时间字段. 类似 DateField 支持同样的附加选项.
     
    '''  
    

    2. 常用字段约束

    # ### orm中的常用字段约束
    '''
    (1)null
     
    如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False.
     
    (1)blank
     
    如果为True,该字段允许不填。默认为False。
    要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。
    如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。
     
    (2)default
     
    字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。
     
    (3)primary_key
     
    如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_key=True,
    Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为,
    否则没必要设置任何一个字段的primary_key=True。
     
    (4)unique
     
    如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的
     
    (5)choices
    由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。
    '''
    

      

    3. 13个常用查询api接口

    # 1.all 查询所有数据
    # 2.count 获取数据总数
    # 3.first: 返回的第一条数据对象
    # 4.last: 返回的最后一个数据对象
    # 5.order_by 排序(正序)
    # 6.order_by 排序(倒序) reverse
    # 7.filter 按条件查询[相当于where] 返回的queryset对象
    # 8.exists():  如果QuerySet包含数据,就返回True,否则返回False
    # 9.get 返回一个模型类对象 [等价于数据对象]
    # 10.exclude: 排除符合条件的对象,返回的依然是queryset对象 [表达不等于除了的概念]
    # 11.values 查找某个字段值,返回字典
    # 12.values_list 查找某个字段值,返回元组
    # 13.distinct 去重
    # 链式操作(连贯操作)
    

    4. 其他常用查询

    	# 范围查询
    	# in  => __in
    	# >   => __gt
    	# >=  => __gte
    	# <   => __lt
    	# <=  => __lte
    	# between .. and .. =>  __range=[100,200]
    	# like => __contains="金"
    
    	# like模糊查询
    	# __contains="金"
    	# like(忽略大小写)
    	# __icontains="a"
    	# __startswith="aa" 以..开头
    	# __endswith="bb"   以..结尾
    	
    	# 针对于date类型
    	# __year  过滤日期字段的年份
    	# __month 过滤日期字段的月份
    	# __day   过滤日期字段的日
    	
    	# 正则 __regex="^金.*$"
    

      

  • 相关阅读:
    使用Spring Cloud Gateway保护反应式微服务(二)
    使用Spring Cloud Gateway保护反应式微服务(一)
    浅谈Spring 5的响应式编程
    使用Spring Data JPA的Spring Boot
    在简单的JDBC程序中使用ORM工具
    Python爬虫
    数据库建模之概念模型、逻辑模型、物理模型
    机器学习(周志华)——学习笔记2
    HTTP——无状态协议理解
    Tomcat中文乱码问题
  • 原文地址:https://www.cnblogs.com/NGU-PX/p/14252949.html
Copyright © 2011-2022 走看看