Python Django MTV及Models总结

一、MTV流程

  • 组成
    • model、view、template、urls
  • Django中流程
    • 客户端 --- > urls
    • urls ---> views
    • views ---> models
    • models ---> views
    • views ---> template
    • template ---> 客户端

二、Models

  • 模型
  • Django
    • 数据操作封装
    • 定义数据表结构
      • 模型类、表、属性、字段
    • 定义模型
      • 继承自Model
      • 定义字段
        • 字段类型
          • CharField、TextField、IntegerField、FloatField、BooleanField、DecimalField、NullBooleanField、AutoField、FileField、ImageField
        • 字段约束
          • max_length、default、unique、index、primary_key、db_column
    • 映射到数据库中
      • 生成迁移文件
      • 执行迁移
      • 前提:数据库配置完毕
        • 默认配置为SQLite
        • 自主配置MySQL
          • 引擎、数据库名、用户名、密码、主机、端口、驱动,需要伪装
    • ORM
      • Object Relational Mapping    对象关系映射
      • 将业务逻辑和SQL语句进行解耦——核心思想:解耦合
      • 可以理解ORM为翻译机
    • CURD
      • CREATE  创建
        • Save
        • 创建对象
          • 直接实例化对象,设置属性
          • 创建对象,传入属性
          • 使用Model.objects.create()
          • 自己封装类方法创建
          • 在Manager中封装方法创建
      • UPDATE  更新
        • 基于查询
        • save
      • DELETE  删除
        • 基于查询
        • save
      • 查询——查询句柄——objects
        • 隐性属性
        • Manager实例
        • 获取查询结果集QuerySet
          • all、filter、exclude、order_by、values
          • 切片
            • 不支持负数
            • 实际上相当于limit offset
            • 懒查询
              • 观察者模型
              • 发布者订阅者
              • 广播
        • 获取单个对象
          • get
            • 不存在会抛出异常  DoesNotExist
            • 存在多于一个MultipleObjectsReturned
            • 使用这个函数记得捕获异常
          • last
          • first
            • 坑点
            • 可能出现第一个和最后一个是一样的情况
            • 需要主动进行排序
        • 条件
          • 属性_操作符=临界值
          • gt
          • gte
          • lt
          • lte
          • in
          • exact
          • startswith
          • endswith
          • contains
          • ignore:iexact、icontains、istartswith、iendswith
          • 条件升级
            • F
              • 获取字段信息
              • 通常用在模型的自我属性比较
              • 支持算术运算
            • Q
              • 条件封装
              • 支持逻辑运算
                • 与或非、&、|、~
          • 内置函数
            • count、exists
          • 聚合函数
            • 操作列、Max、Avg、Min、Sum、Count
    • 属性
      • 显性属性:开发者手动声明的属性
      • 隐性属性
        • 没有声明,父类中也不存在,动态产生出来的
        • 如果开发者主动声明了这些属性,隐性属性自己就不再生成了
    • 重要数据处理
      • 逻辑字段
      • is_delete
      • 自定义Manager实现统一封装:重写get_queryset
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值