Django Day4

Django Day4

1.response理解

  • 属性
    • content 返回的内容
    • status_code 响应状态码
    • content-type 指定MIME类型
  • 方法
    • write 通过网络流写给客户端
    • flush 冲刷缓冲区

2.MIME

  • 多用途互联网邮件扩展,简单理解就是服务器利用MIME标记数据格式,再将数据返回浏览器或客户端,便于浏览器客户端自行分配软件打开
  • 每个MIME类型由两个部分构成,大类型+具体类型,大类型如image.audio等,小类型如png,mp4等等
    • .html text/html
    • .png image/png

3.HttpResponse 子类

  • HttpResponseRedirect
    • 重定向至不同页面
    • 使用reverse进行url反向解析
    • 使用shortcuts库中的redirect简化代码redict(url)
  • JsonResponse
    • 返回json数据类型的请求
    • json
      -jsonObject {key - value}
      -jsonArray [Data | jsonObject]
      -jsonObject 和 jsonArray可以嵌套
    • 数据传输回移动端,Ajax使用JsonResponse

4.登陆过程理解

  • 会话技术
    • cookie
      -数据存储于客户端或浏览器,以键值形式存储,存在过期时间
      -过期时间使用 max_age(单位s)
      -set_cookie | set_signed_cookie 设置cookie(加密)
      -request.COOKIES.get | get_signed_cookie 获得cookie(解密),使用try-except提高代码稳定性
    • token
      -服务器会话技术,自定义session
    • session
      -数据存储于服务器,准确地说存储于RAM中,Django优化存储在DB中
      -默认过期时间14天
      -base64编码+头部混淆串
      -session依赖于cookie
  • Cookie:注册登陆页面路由–用户在登陆页面提交POST请求–制定页面接受POST请求中表单content–判断用户名密码是否正确–如果正确,制定cookies,以键值对形式set–重定向至个人中心页面,根据cookies获取数据进行显示
  • 登陆过程详解图
    Cookie登陆过程详解.png
  • Session:注册登陆页面路由,视图函数根据Method分类完成对不同类型请求的相应–进行POST请求时服务器相应存储Session至内存,Django优化放入DB,返回给客户端或浏览器带有sessionid的响应–用户一定时间内再次访问服务器时,cookie中带有sessionid相关信息,服务器在Django相应数据库中查询,并返回结果
  • 登陆过程详解图
    Session登陆过程详解.png

5.cookie处理中文编码问题

  • Base64 编码 | 解码
  • 示例:
    • Login Page
      uname = ‘小天’
      tep_name = uname.encode('utf-8)
      uname = base64.b64encode(tep_name)
      response = HttpResponseReirect()
      response.set_cookie(“uname”, uname, max_age=60)

    • Display Page
      tep_name = request.COOKIES.get(‘uname’)
      uname = base64.b64decode(tep_name).decode(‘utf8’)

    • 通过上述操作,解决Cookie不能传入中文的问题

6.cookie | session 删除

  • cookie
    • cookie删除, response.delete_cookie(‘name’)
  • session
    • 只删除cookie response.delete_cookie(“sessionid”)
    • 只删除session del request.session[‘u_name’]
    • 二者同时删除 request.session.flush()

欢迎加入我的公众号【全能技术进阶之路】,期待与你的每一天学习!
全能技术进阶之路

发布了8 篇原创文章 · 获赞 1 · 访问量 80

猜你喜欢

转载自blog.csdn.net/StudyFruit/article/details/104436875
今日推荐