请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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 11:52:06

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


1 回复 有任何疑惑可以回复我~
  • 提问者 安生ing #1
    谢谢老师的回答,等把视频看完了,架构理清楚了,哪里不懂的再问老师,
    回复 有任何疑惑可以回复我~ 2017-01-02 21:23:54
  • 提问者 安生ing #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-01-02 21:23:56
永不止息L 2018-04-15 03:57:09

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

0 回复 有任何疑惑可以回复我~
  • bobby #1
    return HttpResponseRedirect 这种用法 我会在课程后面的章节中介绍到
    回复 有任何疑惑可以回复我~ 2018-04-16 11:11:04
  • 慕侠2286034 回复 bobby #2
    那就是说,目前登陆成功后,是 http://127.0.0.1:8000/lgoin/  刷新就会报错,是没有问题的,后面的课程会更正?
    回复 有任何疑惑可以回复我~ 2018-07-04 13:52:56
  • bobby 回复 慕侠2286034 #3
    刷新这个不会报错 而是后端在登录成功后 直接render 到index页面不合适,因为课程还有不少这种处理细节,所以我就将所有这些细节都放到11章中全部处理了
    回复 有任何疑惑可以回复我~ 2018-07-06 17:37:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信