最适合网络开发者的网站
Django。初学者课程

尿素 西斯

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 管理.py 运行服务器


评论