python_django_ 미들웨어

미들웨어는 무엇입니까?

요청을 개입과 응답이 경량 바닥 플러그의 장고 수, 그것은 파이썬 클래스 실제로, 구성 파일에서 우리 ↓↓↓↓ 설정, 미들웨어 있습니다

MIDDLEWARE = [
     ' django.middleware.security.SecurityMiddleware ' ,
     ' django.contrib.sessions.middleware.SessionMiddleware ' ,
     ' django.middleware.common.CommonMiddleware ' ,
     ' django.middleware.csrf.CsrfViewMiddleware ' ,
     ' django.contrib. auth.middleware.AuthenticationMiddleware ' ,
     ' django.contrib.messages.middleware.MessageMiddleware ' ,
     ' django.middleware.clickjacking.XFrameOptionsMiddleware ' , 
]

파이썬 클래스는 각 요구 (이 방법은 ↓↓↓으로 수행되는 위치)에서 실행되는이 방법은 :

방법 :

__init__ 상기 파라미터는 상기 중간 부재를 사용할지 여부를 결정하기 위해, 상기 제 자동 통화 요청에 대한 서버 응답을 전달할 필요가없는 경우
process_request (자체 요청)

그것은 URL을 분배 전에 호출, 또는 반환 없음 HttpResponse에 개체입니다
, 요청이 여러 (공격) 여부를 결정

process_view (자기, 요청, view_func, view_args, view_kwargs) 그것은 이전에보기보기, 반환 없음 또는 HttpResponse에 객체를 호출하기 위해 호출된다
process_template_response (자기, 요청, 응답)

뷰 객체는 반환 없음 (HTML 템플릿 매칭 처리는 관점에서 진행되었다) 단지보기의 구현 다음에 호출하지 않거나 HttpResponse에있다

process_response (자기, 요청, 응답)

(브라우저에 페이지를 반환하는 템플릿) 브라우저에 어떤 응답 다시 전에 전화 HttpResponse에 객체를 반환

process_exception (자기 요청 예외) 호출 할 때 예외를 throw보기, HttpResponse에 객체를 반환

사용자 정의 미들웨어 :

파일 미들웨어 만들기 1

  1. 응용 프로그램 수준의 MyApp에서 쓰기 미들웨어 기능
  2. 다음에 평 파일을 작성, 프로젝트 미들웨어 아래에 디렉토리를 만들고 디렉토리 아래의 MyApp 디렉토리를 생성
  3.  

2, 사용자 정의 미들웨어

from django.utils.deprecation import MiddlewareMixin
# 所有自定义中间件都要继承MiddlewareMixin模块

class mymiddle(MiddlewareMixin):
    def process_request(self,request):
        print('get参数为:', request.GET.get('a'))

3、使用自定义中间件

配置settings.py 文件:MIDDLEWARE = ['middleware.myapp.myMiddle.MyMiddle',]   # 中间件函数的路径

 

注:浏览器的每个请求都会执行中间件

추천

출처www.cnblogs.com/Vera-y/p/11961598.html