Django가 구현한 사용자 지정 액세스 로그 모듈의 예
Django에서는 기본적으로 로그 모듈에 접근하지 않지만, Django의 Middleware를 통해 자신의 로그 모듈에 접근할 수 있습니다.
먼저 Django의 프로젝트 아래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
여기서 processrequest()는 None 또는 HttpResponse 객체를 반환해야 합니다.
None으로 돌아가면, Django는 이 리퀘스트를 계속 처리하고, 후속 중간부품을 실행한 다음, 해당하는view를 호출합니다.
HttpResponse 객체를 반환하면 Django는 다른 중간부품(종류에 상관없이)과 해당하는view를 더 이상 실행하지 않습니다.Django가 HttpResponse를 반환합니다.
그리고 settings를 수정합니다.py 파일, MIDDLEWARECLASSES 섹션에는 위에서 만든 Access Middleware가 추가됩니다. 예를 들어, (맨 뒷줄 참조)
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',
)
서비스를 다시 시작한 다음 임의의 페이지를 방문하면 로그 출력이 보입니다.
파이썬 관련 내용에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 볼 수 있다.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 그리고.
본고에서 서술한 것이 여러분의 파이톤 프로그램 설계에 도움이 되었으면 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.