Django如何簡(jiǎn)單快速實(shí)現(xiàn)PUT、DELETE方法
使用django的小伙伴們應(yīng)該都知道我們是無(wú)法開(kāi)心的處理PUT跟DELETE的
$.ajax({
url: 'XXX',
type: 'PUT',
dataType: 'json',
data: {
's': $("#select-id").find("option:selected").text()
},
success: function (data) {
console.log('ok');
}
})
def func(request):
if request.method == 'GET':
s = request.GET.get('s', None)
return XXX
elif request.method == 'POST':
s = request.POST.get('s', None)
return XXX
elif request.method == 'PUT':
s = request.PUT.get('s', None) # 我們希望愉快的獲取繼續(xù)處理
return XXX
elif request.method == 'DELETE':
s = request.DELETE.get('s', None) # 我們希望愉快的獲取繼續(xù)處理
return XXX
else:
pass
很不幸,在默認(rèn)情況下,我們不能很輕易的根據(jù)restful來(lái)寫url,但是,懶癌的威力是無(wú)窮大的!機(jī)智的小北方通過(guò)查閱資料以及自定義修改實(shí)現(xiàn)了使用中間件來(lái)達(dá)成次目的
首先我們需要在django里某個(gè)app下添加一個(gè)中間件py文件,命名隨意,這里我叫middleware
#!/usr/bin/env python
# -*- coding:utf8 -*-
# __author__ = '北方姆Q'
from django.http import QueryDict
try:
from django.utils.deprecation import MiddlewareMixin # 1.10.x
except ImportError:
MiddlewareMixin = object # 1.4.x-1.9.x
class HttpPost2HttpOtherMiddleware(MiddlewareMixin):
def process_request(self, request):
"""
可以繼續(xù)添加HEAD、PATCH、OPTIONS以及自定義方法
HTTP_X_METHODOVERRIDE貌似是以前版本的key???
:param request: 經(jīng)過(guò)原生中間件處理過(guò)后的請(qǐng)求
:return:
"""
try:
http_method = request.META['REQUEST_METHOD']
if http_method.upper() not in ('GET', 'POST'):
setattr(request, http_method.upper(), QueryDict(request.body))
# except KeyError:
# http_method = request.META['HTTP_X_METHODOVERRIDE']
# if http_method.upper() not in ('GET', 'POST'):
# setattr(request, http_method.upper(), QueryDict(request.body))
except Exception:
pass
finally:
return None
然后在django的settings里注冊(cè)此中間件就好了
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'yourappname.middleware.HttpPost2HttpOtherMiddleware', # 改成自己的app名稱哦 ]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Python提取圖片經(jīng)緯度并鎖定拍照地點(diǎn)
每張照片的屬性中都會(huì)有一個(gè)經(jīng)緯度信息,本文將利用Python實(shí)現(xiàn)提取圖片的經(jīng)緯度,并鎖定拍照的低點(diǎn),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02
利用python庫(kù)matplotlib繪制不同的圖表
這篇文章主要介紹了利用python庫(kù)matplotlib繪制不同的圖表,使用python中的matplotlib繪制圖表,主要分享繪制簡(jiǎn)單的曲線圖、單條曲線圖、多條曲線圖、直方圖以及散點(diǎn)圖的思路和用法,需要的朋友可以參考一下2022-03-03
利用Python找出刪除自己微信的好友并將他們自動(dòng)化刪除
你是否有微信被刪了好友不自知,還傻傻的給對(duì)方發(fā)消息,結(jié)果出現(xiàn)了下圖中那尷尬的一幕的經(jīng)歷呢?其實(shí)我們可以用Python提前把他們找出來(lái)并自動(dòng)化刪除避免尷尬的2023-01-01
python使用Windows的wmic命令監(jiān)控文件運(yùn)行狀況,如有異常發(fā)送郵件報(bào)警
這篇文章主要介紹了python使用Windows的wmic命令監(jiān)控文件運(yùn)行狀況,如有異常發(fā)送郵件報(bào)警的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
淺談pandas中Dataframe的查詢方法([], loc, iloc, at, iat, ix)
下面小編就為大家分享一篇淺談pandas中Dataframe的查詢方法([], loc, iloc, at, iat, ix),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

