ساخت صفحه اصلی در جنگو

صفحه اصلی سایت

پروژه ما به یک صفحه اصلی نیاز دارد.

هنگامی که شخصی از پوشه اصلی پروژه (root folder) بازدید می کند، صفحه اصلی نمایش داده میشود.

اکنون، هنگام بازدید از پوشه ریشه پروژه خود، با خطا مواجه می شوید:

http://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 %}
				
			

ساخت View جدید

سپس یک view جدید به نام 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())
    
				
			
view ساخته شده برای main موارد زیر را انجام می دهد:
  • قالب main.html را بارگیری می کند.
  • HTML رندر شده توسط قالب را خروجی می دهد.

اکنون باید مطمئن شویم که آدرس پوشه اصلی (صفحه اصلی) به view صحیح اشاره دارد.

فایل urls.py را باز کنید و view مربوط به 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 در بلوک محتوا اضافه کنیم:
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/members/.

اگر سرور در حالت اجرا نیست ، باید آن را دوباره با دستور runserver راه اندازی کنید:

				
					py manage.py runserver