Django가 구현한 사용자 지정 액세스 로그 모듈의 예

2015 단어
본고의 실례는 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',
)


서비스를 다시 시작한 다음 임의의 페이지를 방문하면 로그 출력이 보입니다.
파이썬 관련 내용에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 볼 수 있다.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 그리고.
본고에서 서술한 것이 여러분의 파이톤 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기