Django 사용자 정의 중간부품

1576 단어 django
django 중간부품은django의request/response 처리 과정에 삽입된 갈고리 프레임워크입니다.이것은 경량급의 밑바닥 삽입 시스템으로django의 입력과 출력을 전체적으로 수정할 수 있다
Django 중간부품은 클래스여야 하며 클래스를 상속할 필요가 없으며 네 개의 인터페이스를 제공합니다.
1、 process_이 방법은 요청이 올 때 호출됩니다. 2、 process_view (self,request, fnc,arg,kwarg) 는 이번에 실행할 View 함수를 호출하기 전에 이 함수를 호출합니다. 3、 process_response(self,request,response)는 View 함수를 실행하고 응답을 클라이언트에게 보낼 준비를 하기 전에 실행됩니다. 
4、 **process_exception(self,request,exception)**View 함수는 이상을 던질 때 이 함수를 호출합니다. 얻은 exception 파라미터는 실제 던진 이상 실례입니다.이 방법을 통해 좋은 오류 제어를 할 수 있고 우호적인 사용자 인터페이스를 제공할 수 있다.
중간부품을 활성화하려면 Django 프로필 settings에 추가해야 합니다.py의 MIDDLEWARE에서
예를 들어 요청의 단말기가 pc인지 아이폰인지 판단하기
1.우리는 앱 아래에 my 만들기middleware.py 파일:
from django.utils import deprecation


class CheckSourceMiddleware(deprecation.MiddlewareMixin):
    def process_request(self, request):
        from_source = request.META['HTTP_USER_AGENT']
        print('from_source', from_source)
        if 'iPhone' in from_source:
            request.session['from_source'] = 'iphone'
        else:
            request.session['from_source'] = 'pc'

2.views에서.py 파일에 코드를 추가하려면 다음과 같이 하십시오.
def index(request):
    from_source = request.session.get('from_source', 'unknow')
    res = 'from %s' % from_source
    return HttpResponse(res)

3. settings에서.py 파일의 MIDDLEWARE 배열에는 다음이 포함됩니다.
'app_name.my_middleware.CheckSourceMiddleware',
이상, 우리가 index 보기에 방문했을 때, 우리가 컴퓨터로 켰는지 아이폰으로 켰는지 알 수 있다

좋은 웹페이지 즐겨찾기