Django Thêm trang chỉ mục chính
Trang chỉ mục chính
Dự án của chúng tôi cần một trang chính.
Trang chính sẽ là trang đích khi ai đó truy cập vào thư mục gốc của dự án.
Bây giờ, bạn gặp lỗi khi truy cập thư mục gốc của dự án:
Bắt đầu bằng cách tạo một mẫu có tên main.html
:
Chủ yếu
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 %}
Tạo chế độ xem mới
Sau đó, tạo một chế độ xem mới có tên main
, chế độ xem này sẽ xử lý các yêu cầu gửi đến thư mục gốc của dự án:
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())
Chế độ xem main
thực hiện như sau:
- tải mẫu
main.html
. - Xuất ra HTML được mẫu hiển thị.
Thêm URL
Bây giờ chúng ta cần đảm bảo rằng url gốc trỏ đến chế độ xem chính xác.
Mở tệp urls.py
và thêm chế độ xem chính vào danh sách 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'),
]
Chạy ví dụ »Thêm liên kết quay lại chính
Trang thành viên thiếu liên kết quay lại trang chính, vì vậy chúng ta hãy thêm liên kết đó vào mẫu all_members.html
, trong khối content
:
Ví dụ
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 %}
Chạy ví dụ » Nếu bạn đã làm theo tất cả các bước trên máy tính của mình, bạn có thể xem kết quả trong trình duyệt của riêng mình: 127.0.0.1:8000/
.
Nếu máy chủ ngừng hoạt động, bạn phải khởi động lại bằng lệnh runserver
:
py manage.py runserver