django的csrf實(shí)現(xiàn)過(guò)程詳解
如果是ajax提交,可以按照下面的方式處理
<script src="/static/jq/jquery-3.3.1.js"></script>
<script src="/static/jq/jquery.cookie.js"></script>
<script>
$(function () {
ajax_buttion()
})
function ajax_buttion() {
$("#btn").bind("click",function () {
$.ajax(
{
url:"/test/app1/",
type:"post",
data:{
username:"root",
pwd:"admin"
},
headers:{
"X-CSRFToken":$.cookie("csrftoken")
},
sucess:function (data) {
console.log(data)
}
}
)
})
}
</script>
可以設(shè)置一個(gè)全局的設(shè)置,然后在$(function){
}中執(zhí)行函數(shù)

$(function () {
ajax_buttion()
$.ajaxSetup()
})
如果是form表單提交,則可以按照下面的方式處理
<form action="/test/app1/" method="post">
{% csrf_token %}
<input type="text" name="uname">
<input type="submit" value="submit">
<input type="button" value="ajax" id="btn">
</form>
然后返回使用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默認(rèn)是全局都生效的,但是如果我們有需求,比如全局生效,但是我某個(gè)函數(shù)不需要使用csrf該怎么辦;或者我的全局不設(shè)置csrf,但是對(duì)某個(gè)視圖函數(shù)需要采用csrf,該怎么辦
這里就需要導(dǎo)入2個(gè)模塊
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_protect
然后在視圖函數(shù)中使用使用裝飾器來(lái)裝飾視圖函數(shù)
下面的例子就是起到全局啟動(dòng)csrf,但是我這個(gè)函數(shù)不啟動(dòng)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,但是我這個(gè)函數(shù)不啟動(dòng)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")
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python虛擬機(jī)字節(jié)碼教程之裝飾器實(shí)現(xiàn)詳解
在本篇文章當(dāng)中主要給大家介紹在?cpython?當(dāng)中一些比較常見(jiàn)的字節(jié)碼,從根本上理解?python?程序的執(zhí)行。在本文當(dāng)中主要介紹一些?python?基本操作的字節(jié)碼,并且將從字節(jié)碼的角度分析函數(shù)裝飾器的原理2023-04-04
PyCharm License Activation激活碼失效問(wèn)題的解決方法(圖文詳解)
這篇文章主要介紹了PyCharm License Activation激活碼失效問(wèn)題的解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Python-Tkinter Text輸入內(nèi)容在界面顯示的實(shí)例
今天小編就為大家分享一篇Python-Tkinter Text輸入內(nèi)容在界面顯示的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python cv2在驗(yàn)證碼識(shí)別中應(yīng)用實(shí)例解析
這篇文章主要介紹了python cv2在驗(yàn)證碼識(shí)別中應(yīng)用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
通過(guò)Python實(shí)現(xiàn)在Word中添加和刪除書(shū)簽的操作
在Word中,書(shū)簽功能是一個(gè)非常實(shí)用的工具,它允許用戶快速定位到文檔中的特定位置,無(wú)論是進(jìn)行文檔審閱、編輯還是查找特定信息,書(shū)簽都能提供極大的便利,下面將詳細(xì)介紹如何通過(guò)Python在Word文檔中添加和刪除書(shū)簽,需要的朋友可以參考下2024-09-09

