利用HTTP_REFERER,
注销页面这样写:
def logout_user(request):
# del request.session['id']=user_id
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
登录操作:
登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。
可以利用django的session,在转入登陆的时候,用的是页面的get请求,这时候在session中记录HTTP_REFERER,用户输入用户名密码进行登陆的时候(Post请求),从session中取出即可:
def login_user(request):
if request.method == 'GET':
#记住来源的url,如果没有则设置为首页('/')
request.session['login_from'] = request.META.get('HTTP_REFERER', '/')
#TODO:显示登陆页面,blablabla
elif request.method == 'POST':
#TODO: 用户登录操作,blablabla
#重定向到来源的url
return HttpResponseRedirect(request.session['login_from'])
最后的重定向,有时候需要用户感觉到被重定向回去了,就写个简单的页面告诉用户两秒以后跳转,然后改改相应的login代码就行:
<p>两秒钟后转入如下链接,如果长时间没有响应请直接点击:</p >
<p><a href="{{ refresh_url }}">{{ refresh_url }}</ a></p >
<meta http-equiv="refresh" content="2;url={{ refresh_url }}">
本文介绍了如何在Django项目中实现登录与注销功能,并利用HTTP_REFERER进行页面重定向,确保用户体验流畅。通过GET请求记录来源页面并在POST请求登录成功后返回该页面,实现了更加人性化的交互。
4159

被折叠的 条评论
为什么被折叠?



