Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python网站web

django的csrf实现过程详解

来源:中文源码网    浏览:149 次    日期:2024-05-16 12:23:14
【下载文档:  django的csrf实现过程详解.txt 】


django的csrf实现过程详解
如果是ajax提交,可以按照下面的方式处理



可以设置一个全局的设置,然后在$(function){
}中执行函数
$(function () {
ajax_buttion()
$.ajaxSetup()
})
如果是form表单提交,则可以按照下面的方式处理

{% csrf_token %}




然后返回使用render的方式返回
def test(request):
# int("hahah")
# print(settings.C)
print("test------->views",time.time())
print(request.method)
print("_".center(100,"-"))
print(request)
# return HttpResponse("last_app1")
return render(request,"test.html")
中间件里csrf默认是全局都生效的,但是如果我们有需求,比如全局生效,但是我某个函数不需要使用csrf该怎么办;或者我的全局不设置csrf,但是对某个视图函数需要采用csrf,该怎么办
这里就需要导入2个模块
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.csrf import csrf_protect
然后在视图函数中使用使用装饰器来装饰视图函数
下面的例子就是起到全局启动csrf,但是我这个函数不启动csrf
@csrf_exempt
def test(request):
# int("hahah")
# print(settings.C)
print("test------->views",time.time())
print(request.method)
print("_".center(100,"-"))
print(request)
# return HttpResponse("last_app1")
return render(request,"test.html")
下面的例子就是全局不启用csrf,但是我这个函数不启动csrf
@csrf_protect
def test(request):
# int("hahah")
# print(settings.C)
print("test------->views",time.time())
print(request.method)
print("_".center(100,"-"))
print(request)
# return HttpResponse("last_app1")
return render(request,"test.html")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

相关内容