افزودن صفحه ایندکس اصلی (Add Main Index Page)
می خواهیم «صفحه ایندکس اصلی (Main Index Page)» بسازیم. این صفحه وقتی ریشه سایت باز می شود نشان داده می شود. با یک قالب ساده شروع می کنیم، سپس ویو و مسیر (URL) را اضافه می کنیم.
ساخت قالب main.html
یک فایل 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 برای ریشه سایت
یک ویو به نام main بساز. این ویو قالب main.html را رندر می کند.
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())
وصل کردن ریشه سایت به ویو
در urls.py مسیر ریشه را به ویو main وصل کن.
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'),
]
دکمه برگشت به صفحه اصلی
در لیست اعضا یک لینک بازگشت به ریشه اضافه کن تا کاربر راحت برگردد.
{% 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/ باید صفحه اصلی را نشان دهد.
python manage.py runserver
جمع بندی سریع
- یک قالب ساده برای ایندکس بساز.
- ویو main فقط همان قالب را رندر می کند.
- مسیر ریشه را به main وصل کن.
- لینک برگشت در صفحات لیست بگذار.
برای تکمیل مسیر: از قالب مادر استفاده کن، و با لینک به جزئیات تجربه کاربر را بهتر کن. همچنین صفحه ایندکس اصلی لنگر سئویی خوبی است.