前言:
最近工作中需要用到請求中間件攔截前端特定的請求url,處理請求數(shù)據(jù)。這里簡要記錄一下中間件的使用流程。
開發(fā)環(huán)境:
- python版本 2.2.10
- django版本 1.8.2
django中間件的使用流程:
1.在對應(yīng)的app應(yīng)用下新建中間件文件夾并編寫中間件py腳本;
2.在settings.py中注冊中間件;
一、編寫中間件py腳本
1.說明:
實現(xiàn)process_request方法即可進(jìn)行請求攔截
2.攔截思路:
1.通過獲取請求url路徑,根據(jù)路徑關(guān)鍵字符串來判斷是否為需要攔截的請求;
2.若為攔截的請求,則進(jìn)行相關(guān)的業(yè)務(wù)邏輯處理;
3.若不需要攔截,則返回None
3.代碼示例:
# coding:utf-8
"""
請求中間件的簡單使用
該py文件所在項目路徑:myapps/middleware/mymiddleware.py
"""
import json
from django.http import HttpResponse
class MyMiddleware(object):
def process_request(self, request):
"""實現(xiàn)process_request方法即可實現(xiàn)攔截"""
# 獲取請求url
request_url = request.get_full_path()
if request_url.find("middleware") != -1: # 攔截含有middleware關(guān)鍵字的url
print request_url
return HttpResponse(json.dumps({"success": True, "data": ['middleware']}), content_type='text/json',
status=200)
else:
return None
if __name__ == "__main__":
pass
二、在settings.py中注冊中間件
# 在setting.py中注冊該中間件
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
'myapps.middleware.mymiddleware.MyMiddleware' # 注冊中間件(填寫中間件所在的項目路徑即可)
)