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
- Cookie:注册登陆页面路由–用户在登陆页面提交POST请求–制定页面接受POST请求中表单content–判断用户名密码是否正确–如果正确,制定cookies,以键值对形式set–重定向至个人中心页面,根据cookies获取数据进行显示
- 登陆过程详解图
- Session:注册登陆页面路由,视图函数根据Method分类完成对不同类型请求的相应–进行POST请求时服务器相应存储Session至内存,Django优化放入DB,返回给客户端或浏览器带有sessionid的响应–用户一定时间内再次访问服务器时,cookie中带有sessionid相关信息,服务器在Django相应数据库中查询,并返回结果
- 登陆过程详解图
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()
欢迎加入我的公众号【全能技术进阶之路】,期待与你的每一天学习!