zoukankan      html  css  js  c++  java
  • Django 请求生命周期

     

    浏览器

    遵循 HTTP协议:超文本传输协议

      - 请求首行

      - 请求头 

      -

      - 请求体

    四大特性:

      - 基于请求响应

      - 基于TCP/IP之上,作用域应用层的协议

      - 无状态

      - 无连接

    笔记连接

    数据格式:contentType

      - urlencoded :form 与 Ajax 默认的

      - formdata : form表单传输文件

      - josn : Ajax使用 

      - 补充: Ajax 传输文件使用内置对象:new Formdata()

    笔记连接

    Django后端

    <1> wsgiref (web服务网关接口)

    作用:将HTTP协议的数据格式切分成字典的形式

    特点:是django自带的,本身效率不高,仅支持1000左右的并发量,后期上线后会换成wsgi

    问: WSGI 与 wsgiref,uwsgi是什么关系?

      答:WSGI 是协议,wsgiref与uwsgi都是实现该协议的功能模块

    笔记连接

    <2>django中间件

    作用:安保,请求会依次经过注册了的中间件到达路由层

    应用:对所有请求或一部分请求做批量处理

    特点:django默认七个中间件,并有五种自定义方法

    补充:当请求到达某一个中间件时会先到缓存中查看是否有缓存,若有则直接响应到浏览器,不在走后端,若没有则继续向后端请求,当后端处理完向前端的响应到达某个中间时会给前端一份,在缓存中存一份.

    笔记连接 

    <3>urls(路由层)

    作用:将请求的功能与对应的功能函数做分发处理

    知识点:

      - 静态路由(普通路由)

      - 动态路由 :有名分组,无名分组,

      - 反向解析(路由起别名),

      - 名称空间,路由分发(include)

    笔记连接

    <4>views(视图函数)

    作用:核心逻辑的处理

    两大类:FBV 与 CBV

    知识点:

      - froms组件 :1.渲染页面, 2.校验数据, 3.展示信息   局部钩子,全局钩子  链接

      - auth模块 : 校验用户认证相关  链接

      - cookie 与 session   连接

      - 注意:逻辑处理完成向浏览器响应时,也要一次经过中间件,到达wsgiref打包成HTTP协议格式后发生到浏览器

    笔记连接 

    <5.1>templates(模板层)

    作用:html页面

    知识点:

      - 模板语法 {{ 变量相关 }} , { % 逻辑相关 % };

      - 模板导入{% include 'beautiful.html' %},

      - 模板继承,{% extend 模板名.html %}, {% block 块名 %}

      - 自定义标签,自定义过滤器,inclusion_tag

      - csrf 跨站请求伪造{% csrf_token %}  注意:Ajax请求时有三种方式

    笔记连接

    <5.2>models

    作用:对象系映射(创建表)

    知识点:

      - 数据库迁移命令: python3 manage.py makemigrations  /  python3 manage.py migrate

      - 增删改查(create,delete,update,all,filter),双下划线查询(__gt, __lt, __in=[ ], __range=[ ],......),

      - 聚合查询

      - 分组查询

      - F 与 Q 查询

      - only 与 defer

      - select_related 与 prefetch_related

      - 补充:模型表中的外键字段可以看做是被关联表中的一条记录(即对象),正向外键字段,反向表名小写

    笔记连接

    数据库

    django连接数据库(如:MySQL)

    <1>在settings.py文件中配置

    <2>在项目或app中的__init__.py文件中声明

    知识点:

      - 查询 (单表,多表)

      - 索引  连接

      - 查询优化

  • 相关阅读:
    机器学习-识别手写数字0-9
    tensorflow深度学习-mnist数据集读入-初试
    TensorFlow 2.0 最基础的线性回归
    cuDNN 环境变量-默认安装路径
    INT104-lab2
    [蓝桥杯][历届试题][dfs][割点]危险系数
    2021-03-19:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的最大子矩形,内部有多少个1。
    2021-03-17:手写代码:单链表插入排序。
    2021-03-16:手写代码:单链表归并排序。
    2021-03-15:手写代码:单链表选择排序。
  • 原文地址:https://www.cnblogs.com/waller/p/11612611.html
Copyright © 2011-2022 走看看