Djangoビルドリストと詳細ビュー

ORMの使用方法を理解したら、アプリケーションビューを構築する準備をすることができます(ここではブログを例として取り上げます)。Djangoビューは、Python関数としてのみ表され、Web要求を受信し、Web応答を返します。さらに、応答結果を返すためのすべてのロジックがビューにあります。

まず、アプリケーションビューを作成してから、各ビューのURLを定義する必要があります。最後に、ビューによって生成されたデータをレンダリングするためのHTMLテンプレートを作成する必要があります。その中で、各ビューはテンプレートをレンダリングし(変数をテンプレートに渡します)、レンダリングされた出力結果を含むHTTP応答を返します。

リストとビューの生成
投稿のリストを表示するためのビューの作成を始めましょう。ブログアプリケーションのviews.pyファイルを次のように編集します。

from django.shortcuts import render, get_object_or_404
from .models import Post

def post_list(request, tag_slug=None):
    posts = Post.objects.all()
    return render(request, 'blog/post/list.html', {
    
    'posts': posts})

上記のコードは、最初のDjangoビューを作成します。具体的には、post_listビューは、唯一のパラメーターとして要求オブジェクトを受け取ります。すべてのビューでこのパラメーターを使用する必要があることに注意してください。現在のビューでは、オブジェクトマネージャを使用して、オブジェクトのステータスを含むすべての投稿を取得します。最後に、Djangoが提供するrender()メソッドを使用して、指定されたテンプレートを含む投稿のリストをレンダリングします。

2番目のビューを作成して、独立した投稿を表示しましょう。このために、views.pyファイルに次の関数を追加できます。

def post_detail(request, year, month, day, post):
    post = get_object_or_404(Post, slug=post,
                             status='published',
                             publish__year=year,
                             publish__month=month,
                             publish__day=day)
    return render(request, 'blog/post/detail.html', {
    
    'post': post})

投稿の詳細ビューとして、このビューは年、月、日、投稿をパラメーターとして受け入れ、特定のスラッグと日付を含む公開された投稿を取得します。最後に、Djangoが提供するrender()メソッドを使用して、指定されたテンプレートを含む投稿のリストをレンダリングします。

これまでのところ、ビューのみを記述しており、パスとビューテンプレートを以下に追加する必要があることに注意してください。この部分は明日更新されます。ご支援ありがとうございます。

おすすめ

転載: blog.csdn.net/Erudite_x/article/details/112588089