Django中的CSRF认证

直接在form表单中加csef_token标签

<form action="" method="post">
{% csrf_token %} {# 注意必须写在form的里面 #} </form>

装饰器的方法

先导入Django中的模块

from django.views.decorators.csrf import csrf_exempt,csrf_protect

在对应的视图函数加上装饰器即可,比如想取消跨站请求伪造保护:

#取消当前函数防跨站请求伪造功能
# @csrf_exempt
def index(request):
    #GET展示所有数据
    if request.method == 'POST':
        book_lst = Book.objects.all().order_by('title')
        xxx
        xxx
        return xxx

但是,需要特别注意一点:注意csrf-token装饰器的特殊性,在CBV模式下它只能加在dispatch上面!

Ajax中post方式提交数据时通过CSRF

在这篇博客里面:https://www.cnblogs.com/paulwhw/articles/10946246.html#_label12

CSRF官方文档 

详细的见Django官方文档中CSRF内容:https://docs.djangoproject.com/en/1.11/ref/csrf/

posted on 2019-06-09 10:59  江湖乄夜雨  阅读(16)  评论(0编辑  收藏  举报