zoukankan      html  css  js  c++  java
  • 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类用途:

    *可以对条件进行封装

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

     

  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12167425.html
Copyright © 2011-2022 走看看