미들웨어는 무엇입니까?
요청을 개입과 응답이 경량 바닥 플러그의 장고 수, 그것은 파이썬 클래스 실제로, 구성 파일에서 우리 ↓↓↓↓ 설정, 미들웨어 있습니다
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
- 응용 프로그램 수준의 MyApp에서 쓰기 미들웨어 기능
- 다음에 평 파일을 작성, 프로젝트 미들웨어 아래에 디렉토리를 만들고 디렉토리 아래의 MyApp 디렉토리를 생성
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',] # 中间件函数的路径
注:浏览器的每个请求都会执行中间件