关于csrf_token

关于csrf_token

http://img1.sycdn.imooc.com//climg/5fcc3eeb09fa547e06490260.jpg

http://img1.sycdn.imooc.com//climg/5fcc3eec09a9b81a07730436.jpg

老师,您好:

csrf_token()在模板中模板变量里面写出来,那么这个csrf_token()是要在对应的视图函数里面写出来传入到模板里面吗?还是说csrf_token()本身就是在模板中就有的是吗?

正在回答

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

1回答

同学,你好,flask_wtf默认是开启csrf保护的,当使用FlaskForm时,可以在模板中表单一栏加入:{{ form.csrf_token }}这样,csrf保护已经开启。

如果模板不使用FlaskForm,则设置input表单中的type为hidden。

<form method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
</form>

​是可以直接在表单中使用的。

  • 为学习而奋斗 提问者 #1

    老师,您好:

    {{ csrf_token() }}我想问的是,这个{{ csrf_token() }}是不是通过视图函数里面
    传过来的?还是说是模板中本身就有的?或者是说就是不使用FlaskForm的时候,直接在
    模板中使用{{ csrf_token() }}也是可以的是吧?这个{{ csrf_token() }}直接这样写在模板中不会报错的是吗?
    ​flask_wtf是默认开启csrf保护的,所以直接使用{{ csrf_token() }}是可以是吧?
    2020-12-06 14:14:44
  • 好帮手慕美 回复 提问者 为学习而奋斗 #2

    同学,你好,

    1、和视图函数没有关系的,任何使用FlaskForm创建的表单发送请求,都会有CSRF的全部保护,在对应的template中HTML渲染表单时,加入{{ form.csrf_token }}即可

    2、若模板中没有表单,则可以使用一个隐藏的input标签加入csrf_token。

    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>

    ​祝学习愉快~~~~

    2020-12-06 14:58:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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