수업 모습

巴扎黑
풀어 주다: 2017-06-23 16:30:43
원래의
1624명이 탐색했습니다.

클래스 뷰

사용 원칙
  • 코드가 적을수록 좋습니다

  • 코드를 반복하지 마세요

  • 뷰에는 비즈니스 로직이 아닌 프레젠테이션 로직만 포함되어야 합니다.

  • 뷰 로직을 명확하고 단순하게 유지하세요

  • 403, 404, 500에 대한 오류 처리기로 CBV를 사용하지 마세요

  • 믹스인을 단순하고 명확하게 유지하세요

mixin
프로그래밍에서 A 믹스인은 다음을 가리킨다. 상속받은 클래스에 추가 기능을 제공하는 클래스이지만 단독으로 사용할 수는 없습니다
다중 상속 기능이 있는 프로그래밍 언어에서 믹스인은 클래스에 추가 기능이나 메서드를 추가할 수 있습니다. Django에서는 믹스인을 사용할 수 있습니다. 물론 클래스 상속 프로세스에서는 다음 원칙을 권장합니다.
    Django 자체에서 제공하는 뷰는 항상 맨 오른쪽에 있습니다.
  • mixin은 CBV의 왼쪽에 있습니다. 위의 뷰는 차례로
  • mixin은 항상 Python의 객체 유형
  • Django mixin 라이브러리:
일반적으로 사용되는 클래스 뷰
View                    基本View 可以在任何时候使用 见后面详细介绍
RedirectView            重新定向到其他URL 将访问"/log-in/"的用户重新定向到"/login/"TemplateView            显示Django 模板 一般网站中使用模板显示的页
ListView                显示对象列表 文章列表页
DetailView              显示对象详情 文章详细页
FormView                提交From 网站联系我们或emai订阅form
CreateView              创建对象 创建新文章页
UpdateView              更新对象 修改文章页
DeleteView              删除对象 删除文章页
Generic date views      显示一段时间内的对象 按时间归类的博客
로그인 후 복사
에서 상속됩니다.

View

django.views.generic.base.View
클래스 기반 기본 뷰의 핵심입니다. 다른 모든 클래스 기반 뷰는 이 기본 클래스에서 상속됩니다.
 django.shortcuts  django.views.generic state =http_method_names = [, , , , , , ,  dispatch(self, request, *args, **(= super(Index,self).dispatch(request, *args, **( HttpResponse( HttpResponse()
로그인 후 복사
TemplateView

은 다음 뷰에서 메서드와 속성을 상속합니다
    <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class=" 말장난 ">.<span class="pln">기본<span class="pun">.<span class="typ">TemplateResponseMixin<li><p><code class="language-c"><span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin</span></span></span></span></span></span></span></span></span>

  1. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">ContextMixin</span></span></span></span></span></span></span></span></span>

  2. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">View</span></span></span></span></span></span></span></span></span>

 
示例
 django.views.generic.base =  dispatch(self, request, *args, **(= super(HomePageView,self).dispatch(request, *args, **( get_context_data(self, **= super(HomePageView, self).get_context_data(**] = [,,( context
로그인 후 복사

 

 
 

RedirectView

从以下视图继承方法和属性:
  1. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">View</span></span></span></span></span></span></span></span></span>

 
示例
 django.views.generic.base == False  query_string = True  pattern_name =    dispatch(self, request, *args, **(= super(ArticleRedirectView,self).dispatch(request, *args, **( get_redirect_url(self, *args, **( super(ArticleRedirectView, self).get_redirect_url(*args, **kwargs)
로그인 후 복사

 

 
 
 
 
 
 

DetaliView

<span class="typ">DetailView<span class="pun">是对这些出版商的诸多的<span class="pln">object<span class="pun">中的一个进行详细解析,它获得的主数据是一个<span class="pln">object<span class="pun">。</span></span></span></span></span></span>

🎜🎜🎜🎜<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd ">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">ContextMixin🎜🎜🎜🎜🎜🎜🎜🎜🎜 코드 >🎜🎜🎜🎜<code class="언어-c"><span class="pln">django<span class="pun">.<span class="pln">views<span class="pun"> .<span class="kwd">일반<span class="pun">.<span class="pln">기본<span class="pun">.<span class="typ">보기🎜🎜🎜 🎜 🎜🎜🎜🎜🎜</span></span></span></span></span></span></span></span></span>🎜🎜🎜🎜🎜🎜🎜🎜예🎜🎜🎜
 django.contrib.auth.mixins  chouti.models ==   pk_url_kwarg =   

 get_context_data(self, **(context = super(UserDetailView, self).get_context_data(**] = [33, 44]
로그인 후 복사
로그인 후 복사
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜 🎜RedirectView🎜🎜🎜🎜은 다음 보기: 🎜🎜🎜🎜🎜🎜🎜<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun ">.<span class="kwd">일반<span class="pun">.<span class="pln">기본<span class="pun">.<span class="typ"> 보기🎜🎜 🎜🎜🎜🎜🎜🎜🎜</span></span></span></span></span></span></span></span></span>🎜🎜🎜🎜🎜🎜 🎜🎜예🎜🎜🎜
 blog.models  django.views.generic model = Post   queryset = Post.objects.filter(title__contains = )  context_object_name =   template_name=   ( Post.objects.filter(title__contains = self.kwargs[ get_context_data(self, **(= super(PublisherList, self).get_context_data(**kwargs)  context[] = [, ]    context
로그인 후 복사
로그인 후 복사
🎜🎜🎜🎜🎜🎜🎜 🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜DetaliView 🎜🎜<span class="typ">DetailView<span class="pun">는 많은 경우에 대한 <span class="pln">객체<span class="입니다.">을 자세히 분석하여 얻은 주요 데이터는 <span class="pln">객체<span class="pun">입니다. 🎜🎜🎜🎜🎜🎜</span></span></span></span></span></span>🎜🎜🎜🎜다음 뷰에서 메서드와 속성을 상속합니다. 🎜🎜
  1. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">SingleObjectTemplateResponseMixin</span></span></span></span></span></span></span></span></span>

  2. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin</span></span></span></span></span></span></span></span></span>

  3. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">BaseDetailView</span></span></span></span></span></span></span></span></span>

  4. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">SingleObjectMixin</span></span></span></span></span></span></span></span></span>

  5. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">View</span></span></span></span></span></span></span></span></span>

 
示例
 django.contrib.auth.mixins  chouti.models ==   pk_url_kwarg =   

 get_context_data(self, **(context = super(UserDetailView, self).get_context_data(**] = [33, 44]
로그인 후 복사
로그인 후 복사

 

 

ListView

对于ListView来说,它需要显示的是多个object的信息,返回的是一个对象列表
它的数据来源是model和queryset这两个属性:
  1. <span class="pln">model<span class="pun">:获取这个<span class="pln">model<span class="pun">相关的所有数据</span></span></span></span>

  2. <span class="pln">queryset<span class="pun">:从这个<span class="pln">queryset<span class="pun">中获取指定的数据。</span></span></span></span>

  3. <span class="pln">queryset<span class="pun">的优先级高于<span class="pln">model</span></span></span>

  4. <span class="pun">它所获取的数据是通过<span class="pln">context<span class="pun">中<span class="pln">object_list<span class="pun">这个变量来传递的</span></span></span></span></span>

 
 
从以下视图继承方法和属性:
  1. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">MultipleObjectTemplateResponseMixin</span></span></span></span></span></span></span></span></span>

  2. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin</span></span></span></span></span></span></span></span></span>

  3. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">BaseListView</span></span></span></span></span></span></span></span></span>

  4. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">MultipleObjectMixin</span></span></span></span></span></span></span></span></span>

  5. <span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">gen</span></span></span></span></span>

 
 
示例
 blog.models  django.views.generic model = Post   queryset = Post.objects.filter(title__contains = )  context_object_name =   template_name=   ( Post.objects.filter(title__contains = self.kwargs[ get_context_data(self, **(= super(PublisherList, self).get_context_data(**kwargs)  context[] = [, ]    context
로그인 후 복사
로그인 후 복사

 

 
 

위 내용은 수업 모습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!