技術員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務器類 >

Django實現(xiàn)的自定義訪問日志模塊教程

來源:技術員聯(lián)盟┆發(fā)布時間:2019-10-25 18:01┆點擊:

在Django默認沒有訪問日志模塊,但是我們可以通過Django的Middleware來實現(xiàn)一個自己的訪問日志模塊。

首先在Django的工程下創(chuàng)建一個middleware.py文件,內容如下:

#!/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() 應當返回 None 或 HttpResponse 對象。

如果返回 None , Django將繼續(xù)處理這個 request , 執(zhí)行后續(xù)的中間件, 然后調用相應的view.

如果返回 HttpResponse 對象, Django 將不再執(zhí)行 任何 其它的中間件(不論種類)以及相應的view. Django將立即返回該 HttpResponse .

然后修改settings.py文件,在MIDDLEWARE_CLASSES部分加入上面創(chuàng)建的AccessMiddleware,比如:(見最后面一行)

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', )

重啟服務,然后再訪問任意一個頁面就會看到有日志輸出了。