목차
클래스 뷰
RedirectView" >RedirectView
DetaliView
ListView

수업 모습

Jun 23, 2017 pm 04:30 PM
보다

클래스 뷰

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

  • 코드를 반복하지 마세요

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

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

  • 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Vue에서 편집 가능한 테이블을 구현하는 방법 Vue에서 편집 가능한 테이블을 구현하는 방법 Nov 08, 2023 pm 12:51 PM

테이블은 많은 웹 애플리케이션에서 필수적인 구성 요소입니다. 테이블에는 일반적으로 많은 양의 데이터가 있으므로 사용자 경험을 개선하려면 테이블에 몇 가지 특정 기능이 필요합니다. 중요한 기능 중 하나는 편집 가능성입니다. 이 기사에서는 Vue.js를 사용하여 편집 가능한 테이블을 구현하는 방법을 살펴보고 구체적인 코드 예제를 제공합니다. 1단계: 데이터 준비 먼저 테이블에 사용할 데이터를 준비해야 합니다. JSON 객체를 사용하여 테이블의 데이터를 저장하고 Vue 인스턴스의 data 속성에 저장할 수 있습니다. 이 경우

iOS 17의 대기 모드는 충전 중인 iPhone을 홈 허브로 바꿔줍니다. iOS 17의 대기 모드는 충전 중인 iPhone을 홈 허브로 바꿔줍니다. Jun 06, 2023 am 08:20 AM

iOS 17에서 Apple은 iPhone을 가로 방향으로 충전하도록 설계된 새로운 디스플레이 환경인 대기 모드를 선보입니다. 이 위치에서 iPhone은 일련의 전체 화면 위젯을 표시하여 유용한 홈 허브로 전환할 수 있습니다. 대기 모드는 iOS 17을 실행하는 iPhone을 충전기에 수평으로 올려놓으면 자동으로 활성화됩니다. 시간, 날씨, 달력, 음악 컨트롤, 사진 등을 볼 수 있습니다. 사용 가능한 대기 옵션을 왼쪽이나 오른쪽으로 스와이프한 다음 길게 누르거나 위/아래로 스와이프하여 사용자 정의할 수 있습니다. 예를 들어 아날로그 보기, 디지털 보기, 버블폰트, 일광 보기 중에서 선택할 수 있는데, 시간이 지남에 따라 배경색이 변합니다. 몇 가지 옵션이 있습니다.

SpringBoot와 SpringMVC의 차이점과 비교 이해 SpringBoot와 SpringMVC의 차이점과 비교 이해 Dec 29, 2023 am 09:20 AM

SpringBoot와 SpringMVC를 비교하고 차이점을 이해하십시오. Java 개발의 지속적인 개발로 인해 Spring 프레임워크는 많은 개발자와 기업에서 첫 번째 선택이 되었습니다. Spring 생태계에서 SpringBoot와 SpringMVC는 매우 중요한 두 가지 구성 요소입니다. 둘 다 Spring 프레임워크를 기반으로 하지만 기능과 사용법에 약간의 차이가 있습니다. 이 기사에서는 SpringBoot와 Spring을 비교하는 데 중점을 둘 것입니다.

Laravel 개발: Laravel View를 사용하여 뷰를 생성하는 방법은 무엇입니까? Laravel 개발: Laravel View를 사용하여 뷰를 생성하는 방법은 무엇입니까? Jun 14, 2023 pm 03:28 PM

Laravel은 현재 가장 인기 있는 PHP 프레임워크 중 하나이며 강력한 뷰 생성 기능이 인상적입니다. 보기는 웹 애플리케이션에서 사용자에게 표시되는 페이지 또는 시각적 요소로, HTML, CSS, JavaScript와 같은 코드가 포함되어 있습니다. LaravelView를 사용하면 개발자는 구조화된 템플릿 언어를 사용하여 웹 페이지를 구축하고 컨트롤러 및 라우팅을 통해 해당 뷰를 생성할 수 있습니다. 이번 글에서는 LaravelView를 사용하여 뷰를 생성하는 방법을 살펴보겠습니다. 1. 무엇

PHP에서 CodeIgniter4 프레임워크를 사용하는 방법은 무엇입니까? PHP에서 CodeIgniter4 프레임워크를 사용하는 방법은 무엇입니까? May 31, 2023 pm 02:51 PM

PHP는 매우 널리 사용되는 프로그래밍 언어이며 CodeIgniter4는 일반적으로 사용되는 PHP 프레임워크입니다. 웹 애플리케이션을 개발할 때 프레임워크를 사용하면 개발 프로세스 속도를 높이고 코드 품질을 향상시키며 유지 관리 비용을 줄일 수 있습니다. 이 기사에서는 CodeIgniter4 프레임워크를 사용하는 방법을 소개합니다. CodeIgniter4 프레임워크 설치 CodeIgniter4 프레임워크는 공식 홈페이지(https://codeigniter.com/)에서 다운로드할 수 있습니다. 아래에

Word의 보기는 무엇입니까? Word의 보기는 무엇입니까? Mar 19, 2024 pm 06:10 PM

많은 학생들이 단어 조판 기술을 배우고 싶어하는 것 같은데, 편집자는 조판 기술을 배우기 전에 단어 보기를 명확하게 이해해야 한다고 비밀리에 말합니다. Word2007에서는 사용자가 선택할 수 있는 5가지 보기가 제공됩니다. 보기, 읽기 레이아웃 보기, 웹 레이아웃 보기, 개요 보기, 일반 보기 오늘은 이 5가지 단어 보기에 대해 알아보겠습니다. 1. 페이지 보기 페이지 보기는 주로 머리글, 바닥글, 그래픽 개체, 열 설정, 페이지 여백 및 기타 요소를 포함하는 Word2007 문서의 인쇄 결과 모양을 표시할 수 있습니다. 인쇄 결과에 가장 가까운 페이지 보기입니다. 2. 읽기 레이아웃 보기 읽기 레이아웃 보기에는 Word2007 문서와 Office가 책의 열 스타일로 표시됩니다.

Django 프레임워크의 뷰에 대한 자세한 설명 Django 프레임워크의 뷰에 대한 자세한 설명 Jun 17, 2023 am 10:18 AM

Django는 개발자가 확장 가능한 고성능 웹 애플리케이션을 빠르게 만들 수 있도록 다양한 편리한 도구와 라이브러리를 제공하는 고도로 사용자 정의 가능한 웹 프레임워크입니다. 그 중 뷰는 Django 프레임워크의 가장 중요한 구성 요소 중 하나입니다. 뷰는 클라이언트의 요청을 처리하고 해당 응답을 반환하는 역할을 담당합니다. 이 기사에서는 Django 프레임워크의 뷰에 대해 자세히 알아보고 이를 사용하여 고성능의 사용자 정의 가능한 웹 애플리케이션을 만드는 방법을 설명합니다. 1. Django 뷰의 기본 개념

Microsoft는 Visual Studio Code 1.80을 업데이트합니다. Microsoft는 Visual Studio Code 1.80을 업데이트합니다. Jul 10, 2023 pm 08:13 PM

Microsoft는 최근 Visual Studio Code 1.80을 출시했습니다. 이 업데이트는 7월에 출시되었지만 공식에서는 여전히 6월 업데이트라고 부릅니다. 사용자가 이 업데이트를 설치하면 내장 터미널에 이미지가 직접 표시될 수 있으며 보조 기능도 최적화됩니다. 이전에 출시된 Visual Studio Code 미리 보기 버전에서는 터미널의 이미지 지원이 지원되었으며 새 1.80 버전에서는 기본적으로 활성화됩니다. 터미널에서 이미지를 표시할 수 있도록 이미지 픽셀 데이터는 특수 이스케이프 시퀀스를 통해 텍스트로 변환되고 최종적으로 터미널에 기록됩니다. 일반적인 PNG, GIF 또는 JPEG 파일을 터미널에 파이프하려면 imgcatpython 패키지를 설치한 다음 터미널에서 imgc를 실행해야 합니다.

See all articles