登陆成功之后应该是跳转而不是渲染一个HTML文件

来源:6-3 用户登录-2

安生ing

2017-01-01

render(request, 'login.html')

如果按照视频中所说的那样登陆成功之后使用render渲染一个页面,那么当前的URL依旧是/login,只不过是post渲染的,所以这里应该改成HttpResponseRedirect的方式进行跳转

return HttpResponseRedirect('/')

不知道我的理解正确与否,还有一个问题就是,如果我跳转了,但是我并没有吧request重新写入到浏览器,这样是否会有什么问题呢?

login(request, user)  # 把SESSION和COOKIE写入request
return HttpResponseRedirect('/')

这里我有些疑惑,期望得到老师的回答。

写回答

2回答

bobby

2017-01-02

如果你调用login函数成功了, request是会写入到response中的。 另外课程中最后确实应该调用HttpResponseRedirect返回方式的。 但是这个返回方式我是在第十一章中才讲解到的,你看到第十一章的时候就全都明白了。你现在能看到这个问题说明你体会挺快的,给个赞


1
2
安生ing
非常感谢!
2017-01-02
共2条回复

永不止息L

2018-04-15

谢谢你的发帖,我遇到了同样的问题,就是发现登陆成功后 ,如果是 http://127.0.0.1:8000/lgoin  刷新就会报错,http://127.0.0.1:8000 就没有问题,开始的时候不知道怎么办,看了你的提问之后,我用了老师源代码里的  return HttpResponseRedirect(reverse("index")) 就O 了。谢谢!

0
3
bobby
回复
慕侠2286034
刷新这个不会报错 而是后端在登录成功后 直接render 到index页面不合适,因为课程还有不少这种处理细节,所以我就将所有这些细节都放到11章中全部处理了
2018-07-06
共3条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程