django免除csrf校驗(yàn)的方法
免除csrf校驗(yàn)
在django中默認(rèn)啟動(dòng)csrf校驗(yàn),當(dāng)用戶發(fā)起post請(qǐng)求時(shí),必須攜帶csrf_token參數(shù)。如果不想使用csrf校驗(yàn)時(shí),可以使用以下方式免除校驗(yàn)。以下方式都是在局部中使用,如果想全局禁用時(shí),需要在settings文件中配置,這種方式不推薦使用。
一、函數(shù)免除csrf校驗(yàn)
from django.views.decorators.csrf import csrf_exempt# 免除csrf校驗(yàn)@csrf_exempt def users(request): uses_list = ["柚子", "西瓜"] return HttpResponse(json.dumps(uses_list))
二、對(duì)類免除csrf校驗(yàn)
第一種方式
# dispatch是類視圖的根方法,通過dispatch進(jìn)行反射找到其他請(qǐng)求
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
class StudentsView(View):
"""student view"""
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
print("before")
ret = super(StudentsView, self).dispatch(request, *args, **kwargs)
print("after")
return ret(request, *args, **kwargs)
def get(self,*args,**kwargs):
return HttpResponse("get")
def post(self,*args,**kwargs):
return HttpResponse("post")
def put(self,*args,**kwargs):
return HttpResponse("put")
def delete(self,*args,**kwargs):
return HttpResponse("delete")
第二種方式
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
@method_decorator(csrf_exempt,name="dispatch")
class StudentsView(View):
"""student view"""
def get(self,*args,**kwargs):
return HttpResponse("get")
第三種方式
from django.views.decorators.csrf import csrf_exempt
class MyBaseView(object):
@csrf_exempt
def dispatch(self, request, *args, **kwargs):
print("before")
ret = super(MyBaseView, self).dispatch(request, *args, **kwargs)
print("after")
return ret
第四種,在url中添加
from django.views.decorators.csrf import csrf_exempt
urlpatterns = [
path('teachers/', csrf_exempt(TeachersView.as_view()), name="teachers"),
]
到此這篇關(guān)于django免除csrf校驗(yàn)的方法的文章就介紹到這了,更多相關(guān)django免除csrf校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python sqlite3 判斷cursor的結(jié)果是否為空的案例
這篇文章主要介紹了python sqlite3 判斷cursor的結(jié)果是否為空的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
解決Jupyter Notebook使用parser.parse_args出現(xiàn)錯(cuò)誤問題
這篇文章主要介紹了解決Jupyter Notebook使用parser.parse_args出現(xiàn)錯(cuò)誤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
使用python實(shí)現(xiàn)mqtt的發(fā)布和訂閱
這篇文章主要介紹了使用python實(shí)現(xiàn)mqtt的發(fā)布和訂閱,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Python開發(fā)時(shí)報(bào)TypeError:?‘int‘?object?is?not?iterable錯(cuò)誤的解決方
Python寫循環(huán)程序的時(shí)候遇到TypeError:'int'object is not iterable,所以下面這篇文章主要給大家介紹了關(guān)于Python開發(fā)時(shí)報(bào)TypeError:'int'?object?is?not?iterable錯(cuò)誤的解決方式,需要的朋友可以參考下2022-06-06
python光學(xué)仿真實(shí)現(xiàn)光線追跡之空間關(guān)系
這篇文章主要介紹了python光學(xué)仿真中實(shí)現(xiàn)光線追跡的空間關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10

