Django---会话跟踪和请求重定向

1.请求对象和响应对象
(1)请求对象:request
表示的是浏览器客户端向服务器发起的一次数据请求,这个数据请求称为请求对象,在软件开发过程中,一般使用request这个单词表示请求对象

请求对象:描述的是浏览器发送给服务器的一次数据申请访问
请求对象包含如下数据:
    请求方式:request.method ->发送请求的提交方式get/post
    请求编码:request.encoding ->请求中指定的编码方式
    请求GET参数:
        request.GET # 请求中附带的GET参数[url]
        request.GET.get() # 获取一个数据
        request.GET.getlist() # 获取多个数据,如复选框选中的数据
    请求POST参数:
        request.POST # 请求中附带的POST参数[请求体]
        request.POST.get() # 与GET功能类似
        request.POST.getlist() # 与GET功能类似
    请求FILES参数:
        request.FILES # 请求中附带的所有文件数据[请求体],获取POST提交的文件出击
        <input type='file'..>

    请求中的COOKIE数据:客户端身份数据
    请求中的session数据:服务器临时存储数据

(2)响应对象:response
服务器针对浏览器客户端的一次数据申请请求,单次返回给客户端的数据
响应对象中,在软件开发过程中,一般使用response表示响应对象
响应对象,一般包含如下数据:

编码:encoding
内容长度:content-length
内容:content
内容类型:content-type
设置存储数据:set_cookie(k, v, date)

2.会话跟踪技术
(1)软件开发中的会话
会话:浏览器客户端从第一次访问服务器开始,建立对话;在会话过程中可以有多次的请求和响应;当浏览器客户端完全关闭退出的情况下,会话结束
软件开发过程中,会话一般使用session单词来表示
(2)软件开发中的会话跟踪
当一个浏览器客户端访问服务器时,对于浏览器客户端的重要信息进行记录,方便在后续继续访问过程中,对该浏览器客户端提供更加友好的服务[通过历史记录的查询–历史记录之前的访问过程中存储下来],提升服务器和客户端之间的多种复杂业务处理
用户登录操作:用户通过账号+密码,验证是本人操作,然后服务器将验证通过的用户信息记录下来,用户后续再次访问服务器网页时,服务器就可以通过记录的数据判断用户是否处于登录状态
会话跟踪技术
一般通过存储在服务器端的session和存储在客户端的cookie进行管理操作

session和cookie是两个不同的东西
session可以实现会话跟踪,主要将重要的数据存储在服务器端
cookie可以实现会话跟踪,主要将中重要的数据存储在客户端

3.session和cookie的使用方式和操作手段
(1)服务器端可以通过session存储数据,但是要求是存储重要的保持状态的数据,并且数据体积不能太大,每个客户端都会通过session向服务器保存数据.如果数据量过大就会导致服务器空间利用率严重下降甚至崩溃
(2)cookie只能存储在客户端的数据,且只能存储字符串,不能存储空格和中文,cookie中存储的数据长度收到限制,cookie中存储重要的数据即可

request.session['key'] = value # session中添加数据
request.session['key'] # session中获取数据
request.session.clear() # session中清空数据
request.session.flush() # session中的数据刷新
request.session.expires(0) # session中的过期时间
response.set_cookie(k, v, d) # cookie中添加数据
response.COOKIES['k'] # cookie中获取数据

设置了过期时间都是永久的,否则就是临时的
4.请求重定向
本来视图处理函数应该返回一个响应对象给浏览器直接展示数据;视图处理函数返回了重定向操作,本来返回响应数据变成了一个新的路由调用,该视图处理函数执行完成之后再次调用路由执行下一个视图处理函数

from django.http import HttpResponseRedirect

def user_register(request):
    return HttpResponseRedirect('/user/login/')

猜你喜欢

转载自blog.csdn.net/jian15093532273/article/details/79942980