Django学习笔记(4)

DjangoView

爬虫

  • 模拟人去请求数据
  • 提取数据
  • 存储数据

核心内容

  • 数据爬取
  • 数据提取
  • 数据存储
  • 多线程、多进程、协程

MIME

  • 作用:制定传输数据采用哪种形式打开
  • 格式:大类型/小类型
    • image/png
    • image/jpg

JSON

  • JsonObject
    • { }
    • key-value
  • JsonArray
    • [ ]
    • 列表中可以是普通数据类型,也可以是JsonObject
  • JsonObject和JsonArray可以嵌套
  • 给移动端的Json
  • Ajax
    • 前后端分离
    • DRF
  • Google Chrome
    • JsonFomatter
    • JsonView

HttpResponse

  • HttpResponseRedirect
    • 重定向,暂时的
    • 302
    • 简写 redirect
  • JsonResponse
    • 以Json格式返回数据
    • 重写了__init__,序列化Json数据,指定content_type为application/js
  • HttpResponsePermanentRedirect
    • 重定向
    • 永久的
    • 301
  • HttpResponseBadRequest
    • 400
  • HttpResponseNotFound
    • 404
  • HttpResponseNotAllowed
    • 405
  • HttpResponseServerError
    • 500
  • Http404
    • Exception
    • raise主动抛出异常

会话技术

  • 出现场景
    • 服务器如何识别客户端
    • Http在Web开发中基本是短连接
  • 请求生命周期
    • 从Request开始
    • 到Response结束
  • 种类
    • Cookie
      • 客户端会话技术
        • 数据存储在客户端
      • 键值对存储
      • 支持过期时间
      • 默认Cookie会自动携带,本网站所有Cookie
      • Cookie不能跨域名跨网站
      • 通过HttpResponse
      • Cookie不支持中文
      • 可以加盐
        • 加密
        • 获取的时候需要解密
    • Session
      • 服务端会话技术
      • 数据存储在服务器中
      • 默认Session存储在内存中
      • Django默认把session持久化到数据库中
      • Django中默认过期时间是14天
      • 主键是字符串
      • 数据是使用了数据安全的
        • 使用了base64
        • 在前部添加了混淆串
      • Session依赖于cookie
    • Token
      • 服务端会话技术
      • 自定义的session
      • 如果在Web页面开发中,使用起来和Session一致
      • 如果使用在移动端和客户端开发中,通常以Json形式传输,需要移动端自己存储Token,需要获取Token关联数据的时候,制动传递Token
    • Cookie和Session,Token对比
      • Cookie使用起来更加简洁,服务器压力更小,数据不是很安全
      • Session服务器要维护Session,相对安全
      • Token拥有Session的所有优点,自己维护麻烦,支持更多终端

CSRF

  • 防止跨站攻击
  • 防止恶意注册
  • 使用了cookie中csrftoken进行验证传输
  • 服务器发送给客户端,客户端将cookie获取,进行编码转换
  • 如何实现的
    • 在我们存在csrf_token标签的页面中,响应会自动设置一个cookie, csrftoken
    • 当我们提交时候,会自动验证csrftoken
    • 验证通过,正常执行以后流程,验证不通过,403

登录

  • 首先有一个界面
    • 页面中有输入框
    • 有登录按钮
  • 点完登录,默认进入个人中心
  • 个人中心可以显示用户名
    Django学习笔记(4)