djanog总结

              目录              

1.简述http协议

  超文本传输协议

  特色:

    无状态:第一次请求完毕,发起第二次请求,第二次请求仍是如第一次请求同样,他不会记忆你是否访问过

    短连接:一次请求一次响应,而后就断开连接

   格式:web

    请求头和请求体数据库

      请求头首行的格式是 请求方式  请求地址  http协议版本 ,(除了首行)使用\r\n分隔,和请求体须要使用2个\r\n来分隔django

      

    响应头和响应体json

      

    GET和POST的请求头又不同:GET只有请求头,而POST有请求头和请求体   跨域

2.你了解的请求头和响应头有哪些?

请求头:浏览器

  User-Agent:访问设备的信息服务器

  Host:访问的服务器地址数据结构

  referer:作防盗链的socket

  Content-Type:ide

响应头:

  

  

3.你了解的请求方式和状态码有哪些

  请求方式

    

  状态码(常见的)


    
   

  详细参考:

    100 继续
    101 分组交换协
    200 OK
    201 被建立
    202 被采纳
    203 非受权信息
    204 无内容
    205 重置内容
    206 部份内容
    300 多选项
    301 永久地传送
    302 找到
    303 参见其余
    304 未改动
    305 使用代理
    307 暂时重定向
    400 错误请求
    401 未受权
    402 要求付费
    403 禁止
    404 未找到
    405 不容许的方法
    406 不被采纳
    407 要求代理受权
    408 请求超时
    409 冲突
    410 过时的
    411 要求的长度
    412 前提不成立
    413 请求实例太大
    414 请求URI太大
    415 不支持的媒体类型
    416 没法知足的请求范围
    417 失败的预期
    500 内部服务器错误
    501 未被使用
    502 网关错误
    503 不可用的服务
    504 网关超时
    505 HTTP版本未被支持
详细响应状态码

 

4.django请求的生命周期 / 当在浏览器上输入了一个网址,并敲下回车他中间发生了什么?

  1.对域名进行dns解析

  2.浏览器(socket客户端)根据返回的ip和端口进行向服务器发送请求

  3.当服务器接收到请求

    1.实现了wsgi协议的模块,如:wsgiref或uwsgi进行数据的接收

    2.而后将请求转交给django的中间件(如:process_request)

    3.路由系统匹配视图函数

    4.视图函数进行业务处理 (orm的数据操做+模板渲染)

    5.交给中间件的process_response方法进行传递

    6.数据到达wsgi,而后wsgi把数据传递给浏览器,而后断开连接

  4.浏览器接收到数据后断开连接

5.什么是wsgi?

   web服务的网关接口,它是一个协议,

  实现wsgi协议的经常使用两个模块

    wsgiref和uwsgi

  实现wsgi的本质实际上是socket服务端

6.django中间件的做用?应用场景?

  做用:中间件能够对用户的请求和响应进行批量操做

  应用场景:

    本身玩的:

      黑名单

      记录日志

    实际应用:

      权限校验

      用户登陆

      跨域问题

      csrf(校验:django自带的)

  相关知识点

    1.流程实现原理:列表+翻转列表

    2.反射

7.路由系统

  本质:保存路由与视图的对应关系的地方

  

  

  

8.什么是MVC,MTV?

  MVC:model view controller

    模型视图控制器

  MTV :model template view

    模型模板和视图

9.FBV和CBV

  FBV:写函数进行业务逻辑的处理

  CBV:写类来进行业务逻辑的处理

  本质是他们两个都同样,由于都是对应的是一个函数,cbv返回的就是一个view函数

10.视图函数的返回值?  

  1.Httpresponse

    返回的是一个字符串

  2.render

    从数据库拿到数据,而后对模板进行渲染,返回的是一个字符串

  3.redirect

    返回一个响应头,他的location及对应的值就是你要跳转的地方

              问题              

1.现象:两个系统之间进行相互数据传输,系统1向系统2发送POST请求,但系统2的request.POST中没有获取到数据,多是由于什么?

   分析1:多是csrf_token的问题,对post发送的数据进行拦截了

    解决方法:在对一个的函数或类加装饰器(目的:不对其进行csrf校验)

    from django.views.decorators.csrf import csrf_exempt(不校验),csrf_protect(校验)

  分析2:可能传过来的数据格式有问题,如:传过来的数据是json的数据结构

      解决办法:1.你能够去request.body中把数据取出来,而后转换成字符串,再经过反序列化获得数据(不推荐)

          2.使用django-rest_framework来对数据进行解析(它里面自带着对json数据解析的解析器)

相关文章
相关标签/搜索