Inhaltsverzeichnis
Klassenansicht
Ansicht
TemplateView" >TemplateView
ListView

Klassenansicht

Jun 23, 2017 pm 04:30 PM
视图

Klassenansicht

Nutzungsgrundsätze
  • Weniger Code ist besser

  • Niemals Code duplizieren

  • Ansicht sollte nur Präsentationslogik enthalten, keine Geschäftslogik

  • Halten Sie die Ansichtslogik klar und einfach.

  • Verwenden Sie CBVs nicht als Fehlerbehandler für 403, 404, 500.

  • Behalten Sie den Mix bei einfach und klar

Mixin
In der Programmierung bezieht sich Mixin auf A Klasse, die es erbt, bietet zusätzliche Funktionalität, kann aber nicht alleine verwendet werden
In Programmiersprachen mit Mehrfachvererbungsfunktionen können Mixins der Klasse zusätzliche Funktionen oder Methoden hinzufügen. In Django können wir Mixins bereitstellen mehr Erweiterbarkeit für CBVs. Natürlich empfehlen wir im Klassenvererbungsprozess die folgenden Prinzipien:
  • Die von Django selbst bereitgestellte Ansicht befindet sich immer ganz rechts

  • Mixin befindet sich wiederum auf der linken Seite der obigen Ansicht

  • Mixin erbt immer vom Objekttyp von Python

Django-Mixin-Bibliothek:
Häufig verwendete Klassenansichten
View                    基本View 可以在任何时候使用 见后面详细介绍
RedirectView            重新定向到其他URL 将访问"/log-in/"的用户重新定向到"/login/"TemplateView            显示Django 模板 一般网站中使用模板显示的页
ListView                显示对象列表 文章列表页
DetailView              显示对象详情 文章详细页
FormView                提交From 网站联系我们或emai订阅form
CreateView              创建对象 创建新文章页
UpdateView              更新对象 修改文章页
DeleteView              删除对象 删除文章页
Generic date views      显示一段时间内的对象 按时间归类的博客
Nach dem Login kopieren

Ansicht

django.views.generic. base.View
Der Kern klassenbasierter Basisansichten. Alle anderen klassenbasierten Ansichten erben von dieser Basisklasse.
 django.shortcuts  django.views.generic state =http_method_names = [, , , , , , ,  dispatch(self, request, *args, **(= super(Index,self).dispatch(request, *args, **( HttpResponse( HttpResponse()
Nach dem Login kopieren

TemplateView

Erbt Methoden und Eigenschaften aus den folgenden Ansichten
  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">TemplateResponseMixin<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>

  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">ContextMixin</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="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>

  4. <span class=" pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="kwd">generic<span class="pun">. base<span class="pun">.<span class="typ">ContextMixin</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
Nach dem Login kopieren

<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">Ansicht</span></span></span></span></span></span></span></span></span>

    Beispiel
  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>

RedirectView
 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)
Nach dem Login kopieren

Erbt Methoden und Eigenschaften von:
<span class="pln">django<span class="pun">.<span class="pln">Ansichten<span class="pun"> .<span class="kwd">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">Ansicht</span></span></span></span></span></span></span></span></span>

<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>

Beispiel
DetaliView<span-klasse>DetailView<span class="pun"> ist eine detaillierte Analyse eines der vielen <span class="pln">Objekte<span class="pun">. Es werden Stammdaten erfasst <span class="pln">Objekt<span class="pun">. </span></span></span></span></span></span-klasse>Erbt Methoden und Eigenschaften aus den folgenden Ansichten:
  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]
Nach dem Login kopieren

 

 

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
Nach dem Login kopieren

 

 
 

Das obige ist der detaillierte Inhalt vonKlassenansicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Standby-Modus von iOS 17 verwandelt ein ladendes iPhone in einen Home-Hub Der Standby-Modus von iOS 17 verwandelt ein ladendes iPhone in einen Home-Hub Jun 06, 2023 am 08:20 AM

Mit iOS 17 führt Apple den Standby-Modus ein, ein neues Anzeigeerlebnis zum Laden von iPhones in horizontaler Ausrichtung. In dieser Position kann das iPhone eine Reihe von Vollbild-Widgets anzeigen und wird so zu einem nützlichen Home-Hub. Der Standby-Modus wird automatisch aktiviert, wenn ein iPhone mit iOS 17 horizontal auf dem Ladegerät platziert wird. Sie können Uhrzeit, Wetter, Kalender, Musiksteuerung, Fotos und mehr anzeigen. Sie können durch die verfügbaren Standby-Optionen nach links oder rechts wischen und dann zum Anpassen lange drücken oder nach oben/unten wischen. Sie können beispielsweise zwischen analoger Ansicht, digitaler Ansicht, Blasenschrift und Tageslichtansicht wählen, wobei sich die Hintergrundfarbe im Laufe der Zeit je nach Zeit ändert. Es gibt einige Optionen

So implementieren Sie bearbeitbare Tabellen in Vue So implementieren Sie bearbeitbare Tabellen in Vue Nov 08, 2023 pm 12:51 PM

Tabellen sind ein wesentlicher Bestandteil vieler Webanwendungen. Tabellen enthalten normalerweise große Datenmengen, daher erfordern Tabellen einige spezifische Funktionen, um die Benutzererfahrung zu verbessern. Eine der wichtigen Funktionen ist die Bearbeitbarkeit. In diesem Artikel untersuchen wir, wie bearbeitbare Tabellen mit Vue.js implementiert werden, und stellen spezifische Codebeispiele bereit. Schritt 1: Daten vorbereiten Zuerst müssen wir die Daten für die Tabelle vorbereiten. Wir können ein JSON-Objekt verwenden, um die Daten der Tabelle zu speichern und sie in der Dateneigenschaft der Vue-Instanz zu speichern. In diesem Fall

Verstehen Sie die Unterschiede und Vergleiche zwischen SpringBoot und SpringMVC Verstehen Sie die Unterschiede und Vergleiche zwischen SpringBoot und SpringMVC Dec 29, 2023 am 09:20 AM

Vergleichen Sie SpringBoot und SpringMVC und verstehen Sie deren Unterschiede. Mit der kontinuierlichen Weiterentwicklung der Java-Entwicklung ist das Spring-Framework für viele Entwickler und Unternehmen zur ersten Wahl geworden. Im Spring-Ökosystem sind SpringBoot und SpringMVC zwei sehr wichtige Komponenten. Obwohl beide auf dem Spring-Framework basieren, gibt es einige Unterschiede in Funktionen und Verwendung. Dieser Artikel konzentriert sich auf den Vergleich von SpringBoot und Spring

Laravel-Entwicklung: Wie generiert man Ansichten mit Laravel View? Laravel-Entwicklung: Wie generiert man Ansichten mit Laravel View? Jun 14, 2023 pm 03:28 PM

Laravel ist derzeit eines der beliebtesten PHP-Frameworks und seine leistungsstarken Funktionen zur Ansichtsgenerierung sind beeindruckend. Eine Ansicht ist eine Seite oder ein visuelles Element, das dem Benutzer in einer Webanwendung angezeigt wird und Code wie HTML, CSS und JavaScript enthält. Mit LaravelView können Entwickler eine strukturierte Vorlagensprache verwenden, um Webseiten zu erstellen und entsprechende Ansichten über Controller und Routing zu generieren. In diesem Artikel erfahren Sie, wie Sie mit LaravelView Ansichten generieren. 1. Was

Wie verwende ich das CodeIgniter4-Framework in PHP? Wie verwende ich das CodeIgniter4-Framework in PHP? May 31, 2023 pm 02:51 PM

PHP ist eine sehr beliebte Programmiersprache und CodeIgniter4 ist ein häufig verwendetes PHP-Framework. Bei der Entwicklung von Webanwendungen ist die Verwendung von Frameworks sehr hilfreich. Sie können den Entwicklungsprozess beschleunigen, die Codequalität verbessern und die Wartungskosten senken. In diesem Artikel wird die Verwendung des CodeIgniter4-Frameworks vorgestellt. Installation des CodeIgniter4-Frameworks Das CodeIgniter4-Framework kann von der offiziellen Website (https://codeigniter.com/) heruntergeladen werden. Runter

Was sind die Ansichten von Word? Was sind die Ansichten von Word? Mar 19, 2024 pm 06:10 PM

Ich vermute, dass viele Schüler Wortsatzfähigkeiten erlernen möchten, aber der Herausgeber sagt Ihnen insgeheim, dass Sie die Wortansichten klar verstehen müssen. In Word2007 stehen den Benutzern 5 Ansichten zur Auswahl . Ansicht, Leselayout-Ansicht, Web-Layout-Ansicht, Gliederungsansicht und normale Ansicht, lernen wir heute diese 5 Wortansichten mit dem Editor kennen. 1. Seitenansicht Die Seitenansicht kann das Erscheinungsbild des Druckergebnisses des Word2007-Dokuments anzeigen, das hauptsächlich Kopfzeilen, Fußzeilen, Grafikobjekte, Spalteneinstellungen, Seitenränder und andere Elemente umfasst. Dies ist die Seitenansicht, die dem Druckergebnis am nächsten kommt. 2. Leselayoutansicht Die Leselayoutansicht zeigt Word2007-Dokumente und Office im Spaltenstil eines Buches an

Detaillierte Erläuterung der Ansichten im Django-Framework Detaillierte Erläuterung der Ansichten im Django-Framework Jun 17, 2023 am 10:18 AM

Django ist ein hochgradig anpassbares Web-Framework, das viele praktische Tools und Bibliotheken bereitstellt, mit denen Entwickler schnell leistungsstarke, skalierbare Webanwendungen erstellen können. Unter diesen sind Ansichten eine der wichtigsten Komponenten des Django-Frameworks. Ansichten sind dafür verantwortlich, Anfragen von Kunden zu verarbeiten und entsprechende Antworten zurückzugeben. In diesem Artikel tauchen wir tief in die Ansichten im Django-Framework ein und erklären, wie man damit leistungsstarke, anpassbare Webanwendungen erstellt. 1. Das Grundkonzept der Ansichten in Django

Microsoft aktualisiert Visual Studio Code 1.80 Microsoft aktualisiert Visual Studio Code 1.80 Jul 10, 2023 pm 08:13 PM

Microsoft hat kürzlich Visual Studio Code 1.80 veröffentlicht. Obwohl dieses Update im Juli veröffentlicht wurde, wird es von den Beamten immer noch als Juni-Update bezeichnet. Nachdem Benutzer dieses Update installiert haben, kann das integrierte Terminal Bilder direkt anzeigen und auch Zusatzfunktionen wurden optimiert. In der zuvor veröffentlichten Vorschauversion von Visual Studio Code wurde die Unterstützung für Bilder im Terminal unterstützt und ist in der neuen Version 1.80 standardmäßig aktiviert. Um das Bild im Terminal anzeigen zu können, werden die Bildpixeldaten durch eine spezielle Escape-Sequenz in Text umgewandelt und schließlich auf das Terminal geschrieben. Wenn Sie typische PNG-, GIF- oder JPEG-Dateien an das Terminal weiterleiten möchten, müssen Sie das imgcatpython-Paket installieren und dann imgc im Terminal ausführen

See all articles