シリーズ一覧(全記事完成したら更新していきます)
ビューを作成する
Djangoでは汎用ビューが用意されています。
CreateView,UpdateView,DeleteView,ListView,DetailViewなどが存在します。
今回はListViewを用いて、一覧ページを作成します。
from django.views.generic import ListView
from .models import Post
class PostListView(ListView):
# モデル指定
model = Post
# html指定 templates配下のパスを記載する
template_name = 'blog/home.html'
# Postクラス内のレコード群の名前
context_object_name = 'posts'
# 順序性 日付の降順(最新が上)
ordering = ['-date_posted']
view.pyで指定したhtmlファイルを作成します。
posts(Postクラス内のレコード群)をforで1レコード取り出し、タイトル・内容・著者・投稿日を表示します。
{% for post in posts %}
{{ post.title }}<br>
{{ post.content }}<br>
{{ post.author }}<br>
{{ post.date_posted }}<br>
{% endfor %}
URLConfを作成する
URLConfとはDjangoの中でURLパターンをビューにマッピングする役割を担います。
「このURLが指定されたらこのビューを返す」と記述します。
urls.pyは2ファイルあるので注意してください。
1つ目は、/crud/config/urls.pyです。プロジェクト全体を設定範囲とします。includeを用いることで各アプリのurls.pyを読み込みます。
2つ目は、/crud/blog/urls.pyです。blogアプリを設定範囲とします。
blogアプリのurls.pyを読み込む設定を記述します。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('blog.urls')),
path('admin/', admin.site.urls),
]
「http://127.0.0.1:8000/はPostListViewを返す」と記載します。
from django.urls import path
from .views import PostListView
urlpatterns = [
path('', PostListView.as_view(), name='blog-home'),
]
ビューを表示する
準備ができましたのでビューを表示しましょう。
python manage.py runserver
「http://127.0.0.1:8000/」にアクセスします。
上のように表示されましたか?
本日はここまでにします。