• 02.django升级打怪学习记


    定义属性

    ·django根据属性的类型确定以下信息

    ·当前选择的数据库支持字段的类型

    ·渲染管理表单时使用的默认html控件

    ·在管理站点最低限度的验证

    django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列

     

    · 属性命名限制

    ·遵循标识符规则

    ·由于django的查询方式,不允许使用连续的下划线

     

    库:导入from django.db import models

     

    逻辑删除

    对于重要数据都做逻辑删除,不做物理删除,实现方法是定义isDelete属性,类型为BooleanField,默认值为False

     

    字段类型

    ·AutoField

    ·一个根据实际ID自动增长的IntegerField,通常不指定如果不指定,一个主键字段将自动添加到模型中

    CharField(max_length=字符长度)

    ·字符串,默认的表单样式是 TextInput

    TextField

    ·大文本字段,一般超过4000使用,默认的表单控件是Textarea

    IntegerField

    ·整数

    DecimalField(max_digits=None, decimal_places=None)

    ·使用python的Decimal实例表示的十进制浮点数

    FloatField

    ·用Python的float实例来表示的浮点数

    ·BooleanField

    ·true/false 字段,此字段的默认表单控制是CheckboxInput

    ·NullBooleanField

    ·支持null、true、false三种值

    ·DateField([auto_now=False, auto_now_add=False])

    ·使用Python的datetime.date实例表示的日期

    TimeField

    ·使用Python的datetime.time实例表示的时间,参数同DateField

    DateTimeField

    使用Python的datetime.datetime实例表示的日期和时间,参数同DateField

    FileField

    一个上传文件的字段

    ImageField

    继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image

     

     

    字段选项

    通过字段选项,可以实现对字段的约束

    在字段对象时通过关键字参数指定

    null

    ·如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False,数据库范畴的概念

    blank

    ·如果为True,则该字段允许为空白,默认值是 False,表单验证范畴

    db_column

    ·字段的名称,如果未指定,则使用属性的名称

    db_index

    若值为 True, 则在表中会为此字段创建索引

    default

    默认值

    primary_key

    若为 True, 则该字段会成为模型的主键字段

    unique

    如果为 True, 这个字段在表中必须有唯一值

     

    关系

    字段选项

    概念

    示例

    ForeignKey

    一对多,将字段定义在多的端中

    grade.students_set

    Many ToManyField

    多对多,将字段定义在两端中

    student.sgrade_id

    OneToOneField

    一对一,将字段定义在任意一端中

    grade.students

     

    模型成员objects

    fiter:返回符合帅选条件的数据集

    exclude:返回不符合帅选条件的数据集

    示例:

     

     

    查询集和过滤器

    在管理器上调用方法返回查询集,支持链式:

    all:返回所有数据

     

    filter:返回符合条件的数据

     

    exclude:过滤掉符合条件的数据

    order_by:排序

     

    values:一条数据就是一个字典,返回一个列表

    get:返回一个满足条件对象

    first:查询集中的第一个对象

    last:返回查询集中的最后一个对象

    count:返回当前查询集中的对象个数

    exists:判断查询集中是否有数据,如果有数据返回True没有反之

     

    限制查询集合查询集的缓存

     

     

    字段查询:

    *属性__运算符=值

    *gt/lt/gte/lte/in/contains

    *startswith 以xx开始,本质也是like

    *endswith以xx结束

    *exact精确

    *前面同时添加i,ignore忽略(iexact / icontains /istartswith / iendswith

     

    比较运算符:

    跨关系查询:模型类名_属性名_比较运算符,实际上就是处理数据库中的join

     

     

    模型成员

    *类属性

    显性:开发者手动书写的属性

    隐性:ORM自动生成的;如果你把隐形属性手动声明,系统不会为你产生隐性属性

     

     

    备注:

    *对象方法:可以调用对象的属性,也可以调用类的属性

    *类方法:不能调用对象属性,只能调用类属性

    *静态方法:什么都不能调用,不能获取对象属性,爷不能获取类属性,只能在自身

     

    状态码:

    *2xx:请求成功

    *3xx:转发或重定向

    *4xx:客户端错误

    *5xx:服务器错了/后端开发人员最不想看到

     

    F类用途

    *可以获取我们属性的值

    *可以实现一个模型的不同属性的运算操作

    *还可以支持算术运算

     

    Q类用途:

    *可以对条件进行封装

    *封装之后,可以支持逻辑运算(与&或|非~)

     

  • 相关阅读:
    组合数据类型综合练习:1.组合数据类型练习
    Python基础综合练习(五角红旗+字符串练习)
    熟悉常用的Linux操作作业
    大数据概论/作业
    C语言文法
    实验一实验报告
    词法分析程序代码
    jmeter分布式压力测试
    使用badboy配合jmeter测试(详细)
    静态测试,动态测试
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12167425.html
Copyright © 2020-2023  润新知