検索

クラスビュー

Jun 23, 2017 pm 04:30 PM
ビュー

クラスビュー

使用原則
  • コードは少ないほど良い

  • コードを繰り返さないでください

  • ビューにはビジネスロジックではなく、プレゼンテーションロジックのみを含める必要があります

  • ビューのロジックを明確かつ単純にしてください

  • CBV を 403、404、500 のエラー ハンドラーとして使用しないでください

  • ミックスインをシンプルかつ明確にしてください

mixin
ミックスインとは継承するクラスに追加の機能を提供するクラスに追加しますが、単独で使用することはできません
複数の継承機能を持つプログラミング言語では、ミックスインはクラスに追加の機能やメソッドを追加できます。 Django では、ミックスインを使用できます。 CBV のスケーラビリティを高めるために、もちろん、クラス継承プロセスでは次の原則をお勧めします:
    Django 自体によって提供される View は常に右端にあります
  • mixin は左側にあります。上記のビューは順番に
  • 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">ビュー<span class="pun">.<span class="kwd">ジェネリック<span class=" pun ">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin<ol class="linenums list-paddingleft-2"> <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>

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

  • <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">ビュー<span class="pun">.<span class="kwd ">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">ContextMixin🎜🎜🎜🎜🎜🎜🎜🎜🎜コード >🎜🎜🎜🎜<code class=" language-c"><span class="pln">django<span class="pun">.<span class="pln">ビュー<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="これらの発行者の「pun」は詳細に分析され、取得される主なデータは<span">オブジェクト<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">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 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    Pythonリストは、フードの下に動的な配列またはリンクリストですか?Pythonリストは、フードの下に動的な配列またはリンクリストですか?May 07, 2025 am 12:16 AM

    PythonListsareimplementedasdynamicarrays、notlinkedlists.1)they restorediguourmemoryblocks、それはパフォーマンスに影響を与えることに影響を与えます

    Pythonリストから要素をどのように削除しますか?Pythonリストから要素をどのように削除しますか?May 07, 2025 am 12:15 AM

    pythonoffersfourmainmethodstoremoveelements fromalist:1)removesthefirstoccurrenceofavalue、2)pop(index(index(index)removes regvess returnsaspecifiedindex、3)delstatementremoveselementselementsbyindexorseLice、および4)clear()

    スクリプトを実行しようとするときに「許可を拒否された」エラーを取得した場合、何を確認する必要がありますか?スクリプトを実行しようとするときに「許可を拒否された」エラーを取得した場合、何を確認する必要がありますか?May 07, 2025 am 12:12 AM

    toresolvea "許可denided" errors whenrunningascript、sofflowthesesteps:1)checkandadaddadaddadadaddaddadadadaddadaddadaddadaddaddaddaddaddadaddadaddaddaddaddadaddaddaddadadaddadaddadaddadadisionsisingmod xmyscript.shtomakeitexexutable.2)

    Arrayは、Pythonでの画像処理でどのように使用されていますか?Arrayは、Pythonでの画像処理でどのように使用されていますか?May 07, 2025 am 12:04 AM

    ArraySarecrucialinpythonimageprocessing asheyenable efficientmanipulation analysisofimagedata.1)画像anverttonumpyArrays、with grayscaleimagesasas2darraysandcolorimagesas.

    リストよりも大幅に高速な配列の操作はどのような種類ですか?リストよりも大幅に高速な配列の操作はどのような種類ですか?May 07, 2025 am 12:01 AM

    有意に発生することは、採用中に採用されていることを確認してください

    リストと配列間の要素ごとの操作のパフォーマンスの違いを説明します。リストと配列間の要素ごとの操作のパフォーマンスの違いを説明します。May 06, 2025 am 12:15 AM

    ArsareSareBetterElement-WiseOperationsduetof of ActassandoptimizedImplementations.1)ArrayshaveContigUousMoryFordiRectAccess.2)ListSareFlexibleButSlowerDueTopotentialDynamicresizizizizing.3)

    numpyアレイ全体で数学操作を効率的に実行するにはどうすればよいですか?numpyアレイ全体で数学操作を効率的に実行するにはどうすればよいですか?May 06, 2025 am 12:15 AM

    Numpyの配列全体の数学的操作は、ベクトル化された操作を通じて効率的に実装できます。 1)追加(arr 2)などの簡単な演算子を使用して、配列で操作を実行します。 2)Numpyは、基礎となるC言語ライブラリを使用して、コンピューティング速度を向上させます。 3)乗算、分割、指数などの複雑な操作を実行できます。 4)放送操作に注意して、配列の形状が互換性があることを確認します。 5)np.sum()などのnumpy関数を使用すると、パフォーマンスが大幅に向上する可能性があります。

    Pythonアレイに要素を挿入するにはどうすればよいですか?Pythonアレイに要素を挿入するにはどうすればよいですか?May 06, 2025 am 12:14 AM

    Pythonでは、要素をリストに挿入するための2つの主要な方法があります。1)挿入(インデックス、値)メソッドを使用して、指定されたインデックスに要素を挿入できますが、大きなリストの先頭に挿入することは非効率的です。 2)Append(Value)メソッドを使用して、リストの最後に要素を追加します。これは非常に効率的です。大規模なリストの場合、append()を使用するか、dequeまたはnumpy配列を使用してパフォーマンスを最適化することを検討することをお勧めします。

    See all articles

    ホット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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    mPDF

    mPDF

    mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、