본문 바로가기
파이썬/파이썬기본문법

파이썬 Django 메인 인덱스 페이지(Main Index Page)

by flycoding 2024. 2. 21.
반응형

파이썬 Django 메인 인덱스 페이지(Main Index Page)

우리 프로젝트에는 메인 페이지가 필요하다.

메인 페이지는 누군가가 프로젝트의 루트 폴더를 방문할 때 랜딩 페이지가 된다.

이제 프로젝트의 루트 폴더를 방문할 때 오류가 발생한다:

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 %}

 

파이썬 Django 새로운 뷰 생성

그런 다음 프로젝트 루트에 대한 수신 요청을 처리하는 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을 출력한다.

 

파이썬 Django URLs 추가

이제 루트 URL이 올바른 보기를 가리키는지 확인해야 한다.

urls.py 파일을 열고 기본 보기를 url 패턴 목록에 추가한다:

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'),
]

 

위의 코드를 실행하면 아래 그림과 같이 실행된다.

파이썬 Django 메인 인덱스 페이지 활용 예제

 

파이썬 Djanog Main으로 돌아가는 링크 추가

멤버 페이지에 기본 페이지로 돌아가는 링크가 없다. 따라서 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 %}

 

위의 코드를 실행하면 아래 그림과 같이 실행이 된다.

파이썬 Django main index page 활용 예제

 

자신의 컴퓨터에서 모든 단계를 따랐다면 127.0.0.1:8000/이라는 자신의 브라우저에서 결과를 볼 수 있다.

서버가 다운되면 runserver 명령으로 서버를 다시 시작해야 한다:

py manage.py runserver

 

이번 글에서는 파이썬 Djanog Main index Page를 생성하고 링크를 연결하는 과정을  살펴보았다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글