老师,隐藏表单域的作用是什么?

老师,隐藏表单域的作用是什么?

老师,为什么把next_url写在隐藏表单域中,就会直接访问上次访问的url呢?类似于把next_url拼接到login/的后面吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
时间, 2022-11-16 10:23:14

同学,你好!隐藏域在页面中对于用户是不可见的,但可以赋值使用,表单中插入隐藏域的目的在于收集或发送信息。

在没有登录时,访问添加了@login_required的路由(即登录后才可以访问的页面)时,会自动跳转到登录界面,url中会添加next参数

https://img1.sycdn.imooc.com//climg/637442f40947909208570246.jpg

通过request.values.get('next', None)获取next的值并到html中,在登录提交表单时会携带next_url,username和password的值,因此登录成功后会跳转到相应的页面中

https://img1.sycdn.imooc.com//climg/6374446d09d9748809890550.jpg

祝学习愉快!

  • 提问者 慕田峪6467393 #1
    next_url = request.values.get('next', url_for('qa.index'))

    老师,nextt_url在这行代码中不是已经取到了吗,直接retern redirec(next_url)重定向到这个url不就可以了吗,为什么还传到login.html模板中呢?

    2022-11-16 20:11:17
  • 时间, 回复 提问者 慕田峪6467393 #2

    同学,你好!在点击登录执行登录操作时会重新执行视图函数。如果不传next_url,在点击登录表单提交时,没有携带next_url值,在执行视图函数时根据next取值是取不到的,会跳转到首页。

    next_url

    https://img1.sycdn.imooc.com//climg/637591a509448a8017590237.jpg

    不传next_url

    https://img1.sycdn.imooc.com//climg/637591de0905a9e217730113.jpg

    祝学习愉快!

    2022-11-17 09:46:00
  • 提问者 慕田峪6467393 回复 时间, #3

    明白了,谢谢老师

    2022-11-17 14:59:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师