Django 新增主索引頁
主索引頁
我們的專案需要一個主頁。
當有人訪問專案根目錄時,主頁將作為登陸頁面。
現在,您在訪問專案根目錄時會遇到一個錯誤。
開始建立一個名為 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
檔案,並將 main 檢視新增到 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