Django メインページ
メインのインデックスページ
プロジェクトにはメインページが必要です。
メインページは、プロジェクトのルートフォルダーにアクセスしたときの最初のページになります。
以下ののルートフォルダーにアクセスするとエラーが発生します。
127.0.0.1:8000/
.
エラーとなるので、まずはmain.html
テンプレートを作成します。
メインページ
my_tennis_club/members/templates/main.html
:
{% extends "master.html" %}
{% block title %}
My Tennis Club
{% endblock %}
{% block content %}
<h1>My Tennis Club</h1>
<h3>Members</h3>
<p>Check out all our<a href="members/">members</a></p>
{% endblock %}
新しいビューを作成
次に、プロジェクトのルートへの受信リクエストを処理するmain
という新しいビューを作成します。
my_tennis_club/members/views.py
:
from django.http import HttpResponse
from django.template import loader
from .models import Member
def members(request):
mymembers = Member.objects.all().values()
template = loader.get_template('all_members.html')
context = {
'mymembers': mymembers,
}
return HttpResponse(template.render(context, request))
def details(request, id):
mymember = Member.objects.get(id=id)
template = loader.get_template('details.html')
context = {
'mymember': mymember,
}
return HttpResponse(template.render(context, request))
def main(request):
template = loader.get_template('main.html')
return HttpResponse(template.render())
main
ビューは次のことを行います。
main.html
テンプレートを読み込みます。- テンプレートによってレンダリングされるHTMLを出力します。
URLを追加
ここでルートURLが正しいビューを指していることを確認する必要があります。
urls.py
ファイルを開き、メイン ビューをurlpatterns
リストに追加します。
my_tennis_club/members/urls.py
:
from django.urls import path
from . import views
urlpatterns = [
path('', views.main, name='main'),
path('members/', views.members, name='members'),
path('members/details/<int:id>', views.details, name='details'),
]
メインに戻るリンクを追加
メンバーページにはメインページへのリンクが欠落しているため、all_members.html
テンプレートのcontent
ブロックに追加しましょう。
例
my_tennis_club/members/templates/all_members.html
:
{% extends "master.html" %}
{% block title %}
My Tennis Club - List of all members
{% endblock %}
{% block content %}
<p><a href="/">HOME</a></p>
<h1>Members</h1>
<ul>
{% for x in mymembers %}
<li><a href="details/{{ x.id }}">{{ x.firstname }} {{ x.lastname }}</a></li>
{% endfor %}
</ul>
{% endblock %}
すべての手順を実行して、ブラウザー127.0.0.1:8000/
で結果を確認できます。
サーバーがダウンしている場合は、次のrunserver
コマンドを使用してサーバーを再起動する必要があります。
py manage.py runserver
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。