Django實(shí)現(xiàn)的自定義訪問(wèn)日志模塊示例
本文實(shí)例講述了Django實(shí)現(xiàn)的自定義訪問(wèn)日志模塊。分享給大家供大家參考,具體如下:
在Django默認(rèn)沒(méi)有訪問(wèn)日志模塊,但是我們可以通過(guò)Django的Middleware來(lái)實(shí)現(xiàn)一個(gè)自己的訪問(wèn)日志模塊。
首先在Django的工程下創(chuàng)建一個(gè)middleware.py文件,內(nèi)容如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- import time class AccessMiddleware(object): def process_request(self, request): meta = request.META print "[%s] PATH_INFO=%s, REMOTE_ADDR=%s, HTTP_USER_AGENT=%s" \ %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), meta['PATH_INFO'], meta['REMOTE_ADDR'], meta['HTTP_USER_AGENT']) return None def process_response(self, request, response): return response
其中 process_request() 應(yīng)當(dāng)返回 None 或 HttpResponse 對(duì)象。
如果返回 None , Django將繼續(xù)處理這個(gè) request , 執(zhí)行后續(xù)的中間件, 然后調(diào)用相應(yīng)的view.
如果返回 HttpResponse 對(duì)象, Django 將不再執(zhí)行 任何 其它的中間件(不論種類)以及相應(yīng)的view. Django將立即返回該 HttpResponse .
然后修改settings.py文件,在MIDDLEWARE_CLASSES部分加入上面創(chuàng)建的AccessMiddleware,比如:(見(jiàn)最后面一行)
MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'commons.middleware.AccessMiddleware', )
重啟服務(wù),然后再訪問(wèn)任意一個(gè)頁(yè)面就會(huì)看到有日志輸出了。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日志操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python學(xué)習(xí)教程之使用py2exe打包
py2exe是一個(gè)將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之使用py2exe打包的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09python遞歸打印某個(gè)目錄的內(nèi)容(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇python遞歸打印某個(gè)目錄的內(nèi)容(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Pycharm創(chuàng)建項(xiàng)目時(shí)如何自動(dòng)添加頭部信息
這篇文章主要介紹了Pycharm創(chuàng)建項(xiàng)目時(shí) 自動(dòng)添加頭部信息,需要的朋友可以參考下2019-11-11對(duì)Python的Django框架中的項(xiàng)目進(jìn)行單元測(cè)試的方法
這篇文章主要介紹了對(duì)Python的Django框架中的項(xiàng)目進(jìn)行單元測(cè)試的方法,使用Django中的tests.py模塊可以輕松地檢測(cè)出一些常見(jiàn)錯(cuò)誤,需要的朋友可以參考下2016-04-04解決usageerror: line magic function "
這篇文章主要介紹了解決usageerror: line magic function "%%time" not found問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python?time模塊計(jì)算時(shí)間之間的差距(練習(xí)題)
這篇文章主要介紹了python?time模塊計(jì)算時(shí)間之間的差距,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05Python實(shí)現(xiàn)Excel和CSV之間的相互轉(zhuǎn)換
通過(guò)使用Python編程語(yǔ)言,編寫(xiě)腳本來(lái)自動(dòng)化Excel和CSV之間的轉(zhuǎn)換過(guò)程,可以批量處理大量文件,定期更新數(shù)據(jù),并集成轉(zhuǎn)換過(guò)程到自動(dòng)化工作流程中,本文將介紹如何使用Python 實(shí)現(xiàn)Excel和CSV之間的相互轉(zhuǎn)換,需要的朋友可以參考下2024-03-03python3.7 利用函數(shù)os pandas利用excel對(duì)文件名進(jìn)行歸類
這篇文章主要介紹了python3.7 利用函數(shù)os pandas利用excel對(duì)文件名進(jìn)行歸類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09