사용자 도구

사이트 도구


python:django:class-based

Built-in class-based views API

https://docs.djangoproject.com/en/3.2/ref/class-based-views/

  • Base views
    • View
    • TemplateView
    • RedirectView
  • Generic display views
    • DetailView
    • ListView
  • Generic editing views
    • FormView
    • CreateView
    • UpdateView
    • DeleteView
  • Generic date views
    • ArchiveIndexView
    • YearArchiveView
    • MonthArchiveView
    • WeekArchiveView
    • DayArchiveView
    • TodayArchiveView
    • DateDetailView
  • Class-based views mixins
    • Simple mixins
      • ContextMixin
      • TemplateResponseMixin
    • Single object mixins
      • SingleObjectMixin
      • SingleObjectTemplateResponseMixin
    • Multiple object mixins
      • MultipleObjectMixin
      • MultipleObjectTemplateResponseMixin
    • Editing mixins
      • FormMixin
      • ModelFormMixin
      • ProcessFormMixin
      • DeletionMixin
    • Date-based mixins
      • YearMixin
      • MonthMixin
      • DayMixin
      • WeekMixin
      • DateMixin
      • BaseDeteListMixin
  • Class-based generic views - flattened index
    • Simple generic views
      • View
      • Template View
      • Redirect View
    • Detail Views
      • DetailView
    • List Views
      • ListView
    • Editing views
      • FormView
      • CreateView
      • UpdateView
      • DeleteView
    • Date-based views
      • ArchiveIndexView
      • YearArchiveView
      • MonthArchiveView
      • WeekArchiveView
      • DayArchiveView
      • TodayArchiveView
      • DateDetailView

class-based의 메소드 호출

View

순서 메소드 설명
1 setup(request, *args, **kwargs) dispatch()에 앞서 키 초기화를 수행. 이 메소드를 덮어쓰면, super()를 호출해야 한다.
2 dispatch(request, *args, **kwargs) view보기 의 일부 - request 인수와 인수 를 받아들이고 HTTP response을 반환하는 메서드입니다 . 기본 구현은 HTTP 메서드를 검사하고 HTTP 메서드와 일치하는 메서드에 위임을 시도합니다; GET은 get()에, POST는 post()에, 등등. 기본적으로 HEAD요청은 get()에 위임됩니다. HEAD와 다른 방식으로 요청 을 처리해야 하는 경우, head()메서드를 GET재정의할 수 있습니다.
3 http_method_not_allowed(request, *args, **kwargs) 뷰가 지원하지 않는 HTTP 메서드로 호출된 경우 이 메서드가 대신 호출됩니다. 기본 구현은 HttpResponseNotAllowed일반 텍스트로 된 허용된 메서드 목록과 함께 반환 됩니다.
4 options(request, *args, **kwargs) OPTIONS HTTP 동사에 대한 요청에 대한 응답을 처리합니다. 보기에 허용된 HTTP 메서드 이름 목록이 포함된 Allow헤더가 있는 응답을 반환 합니다.

TemplateView

Method Flowchart

  1. setup()
  2. dispatch()
  3. http_method_not_allowed()
  4. get_context_data()
    • get_context_data(**kwargs) - 템플릿 컨텍스트를 나타내는 사전을 반환합니다. 제공된 키워드 인수는 반환된 컨텍스트를 구성합니다.
from django.views.generic.base import TemplateView
 
from articles.models import Article
 
class HomePageView(TemplateView):
 
    template_name = "home.html"
 
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['latest_articles'] = Article.objects.all()[:5]
        return context

적절한 경우 alters_data 를 사용하십시오.

템플릿 컨텍스트에 뷰 인스턴스가 있으면 잠재적으로 위험한 방법을 템플릿 작성자에게 노출시킬 수 있습니다. 이와 같은 메소드가 템플리트에서 호출되지 않도록하려면 해당 메소드에서 alters_data=True 를 설정 하십시오. 자세한 내용 은 템플릿 컨텍스트 렌더링에 대한 설명서를 참조하십시오.

RedirectView

Method Flowchart

  1. setup()
  2. dispatch()
  3. http_method_not_allowed()
  4. get_redirect_url()
    • get_redirect_url(*args, **kwargs) - 리디렉션 할 대상 URL을 구성합니다.
python/django/class-based.txt · 마지막으로 수정됨: 2025/04/15 10:05 저자 127.0.0.1