Django的Web开发模板Model+静态资源+文件上传(图片)的使用思维导图

Model+静态资源

Model >DB

迁移

  • 生成迁移

    • makemigrations
  • 执行迁移

    • migrate

迁移原理

  • 根据既有迁移文件与Model进行比对,生成新的迁移文件
  • ,直接过滤掉已执行的文件
  • 执行未执行的迁移文件,并记录

DB >>Model

数据库中建立表

python manage.py inspectdb

  • 在终端中生成model的语句,然后粘贴到models.py中

python manage.py inspectdb > models.py

  • 可以直接生成models.py文件

以上都会自动生成元信息 Meta, manage=False

模型关系

1对1

  • OneToOneField

  • 确认主从关系

    • 底层实现:在表中晟敏国外键并添加唯一约束
  • 获取

    • 从获取主

      • 显性属性
    • 主获取从

      • 隐性属性
      • 默认就是从表模型名(小写)
  • on_delete

    • models.CASECADE

      • 默认级联数据同步删除
    • models.PROTECT

      • 受保护的
      • 当存在级联数据的时候,删除主表会爆出异常
      • 除非产出所有从表数据,才可以删除
    • set

      • SET_NULL

        • 设为空
        • 前提是字段允许为Null
      • SET_EFAULT

        • 设为默认值
        • 前提是存在默认值
      • SET

        • 自己赋值

1对多

  • 直接使用外键实现

  • 主从,多是从

  • 级联对象获取

    • 从获取主

      • 显性属性
    • 主获取从

      • 隐性属性

      • 默认是 级联数据_set

        • 也是manager的一个子类

          • filter
          • exclude
          • all
          • 切片
    • 数据删除同1对1

多对多

  • ManyToManyField

  • 两张以上的表的对应关系

  • 会自动生成一个联合唯一表

    • 表中使用多个外键实现
    • 外键对应关系表的主键
  • 数据获取

    • 两张表的结构完全一样

    • 从获取主

      • Manage对象

        • filter等

        • 操作级联数据

          • add
          • remove
          • clear
          • set
      • 显性属性

    • 主获取从

      • 隐性属性
      • 其他都一样

模型继承

默认一个模型映射一张表

如果模型存在继承

  • 父模型产生表映射

    • 子表对应的表会通过外键和副表产生关系
  • 数据量越大,关系越多,性能越低

  • 不建议直接继承

将父模型抽象,使用

  • 在model的元信息中添加 abstract=True
  • 抽象的模型不会在数据库中产生表
  • 子模型继承父模型中的所有字段

静态资源

使用时注意配置资源位置

STATICFILE_DIRS

模板中添加 {% load static %}

{% static ‘相对路径’ %}

文件上传

客户端

  • 必须使用POST
  • 指定enctype="multiplepart/form-data

原生

  • with open …
  • 每次写入需要flush()

Django内置

  • imageField

    • 依赖于Pillow

    • 配置使用

      • settings中指定MEDIA_ROOT

      • 指定字段的upload_to

        • 文件路径支持时间格式化

        • %Y%m%d

          • 这个可以活用
          • icon/%Y%m
    • 子主题 3
      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值