2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CRUD】【Django】PythonフレームワークDjangoを使ってCRUDサイトを作成する~3~

Posted at

シリーズ一覧(全記事完成したら更新していきます)

ビューを作成する

Djangoでは汎用ビューが用意されています。
CreateView,UpdateView,DeleteView,ListView,DetailViewなどが存在します。

今回はListViewを用いて、一覧ページを作成します。

/crud/blog/view.py
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レコード取り出し、タイトル・内容・著者・投稿日を表示します。

/crud/blog/templates/bolg/home.html
{% 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を読み込む設定を記述します。

/crud/config/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を返す」と記載します。

/crud/blog/urls.py
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/」にアクセスします。
image.png

上のように表示されましたか?

本日はここまでにします。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?