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
文件并将主视图添加到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 管理.py 运行服务器