Django에서 클래스 보기의 몇 가지 실현 방식
20786 단어 Django
4
4
방식 1
def my_decorator(func):
""" """
def wrapper(request,*args,**kwargs):
print(" ")
print(" : %s" % request.path)
return func(request, *args, **kwargs)
return wrapper
class DemoView(View):
""" """
# dsipasth ,dsipasth as_view
@method_decorator(my_decorator)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
def get(self,request):
print("get ")
return HttpResponse("get page")
def post(self,request):
print("post ")
return HttpResponse("post page")
에서파일에서 4
urls
클래스를 보기로 바꾸기url("demo1",DemoView.as_view()),
방식 2
def my_decorator(func):
""" """
def wrapper(request,*args,**kwargs):
print(" ")
print(" : %s" % request.path)
return func(request, *args, **kwargs)
return wrapper
"""
method_decorator name
method_decorator , name
"""
# @method_decorator(my_decorator, name='get') #
@method_decorator(my_decorator,name="dispatch") #
class DemoVeiw2(View):
""" """
def get(self,request):
print("get ")
return HttpResponse("get page")
def post(self,request):
print("post ")
return HttpResponse("post page")
에서파일에서 4
as_view()
클래스를 보기로 바꾸기 url("demo2",DemoVeiw2.as_view()),
사각형 3
def my_decorator(func):
""" """
def wrapper(request,*args,**kwargs):
print(" ")
print(" : %s" % request.path)
return func(request, *args, **kwargs)
return wrapper
def my_decorator3(func):
def wrapper(self, request, *args, **kwargs): # self
print(' ')
print(' %s' % request.path)
return func(self, request, *args, **kwargs) # self
return wrapper
"""
, , request
, request , self , request
method_decorator self , 。
, , method_decorator。
"""
class DemoVeiw3(View):
""" """
@my_decorator3 # dispatch
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
def get(self,request):
print("get ")
return HttpResponse("get page")
def post(self,request):
print("post ")
return HttpResponse("post page")
에서파일에서 4
urls
클래스를 보기로 바꾸기url("demo3",DemoView.as_view()),
Mody4(Minxin Extension Class)
"""
Minxin
"""
def my_decorator4(func):
""" """
def wrapper(request, *args, **kwargs): # self
print(' ')
print(' %s' % request.path)
return func(request, *args, **kwargs) # self
return wrapper
# , Minxin
class MyDecoratorMinxin(object):
""" Minxin """
@classmethod
def as_view(cls, *args, **kwargs):
view = super().as_view(*args, **kwargs)
view = my_decorator4(view)
return view
"""
, ,
object, object as_view ,
View
"""
class DemoVeiw4(MyDecoratorMinxin,View): # , View
""" """
def get(self,request):
print("get ")
return HttpResponse("get page")
def post(self,request):
print("post ")
return HttpResponse("post page")
에서파일에서 4
as_view()
클래스를 보기로 바꾸기url("demo4",DemoView.as_view()),
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.