본문 바로가기

Webpage

4. Django 새 페이지 만들기

- 0. 참고사이트 : https://tutorial.djangogirls.org/ko/extend_your_application/

 

애플리케이션 확장하기 · Django Girls Tutorial

프로그램 애플리케이션 확장하기 지금까지 웹 사이트 제작 단계를 모두 마쳤어요. 모델, url, 뷰와 템플릿을 만드는 방법을 알게 되었고요. 웹 사이트를 예쁘게 꾸미는 방법도 알게 되었어요. 이제 또 실습해봅시다! 블로그 게시글이 각 페이지마다 보이게 만들어 봅시다. 이미 앞에서 Post모델을 만들었으니 models.py에 새로 추가할 내용은 없어요. Post에 템플릿 링크 만들기 blog/templates/blog/post_list.html파일에 링크를

tutorial.djangogirls.org

 

- 1. 페이지 경로 입력

$vi templates/blog/post_list.html

{% extends 'blog/base.html' %}

{% block content %}
    {% for post in posts %}
        <div class="post">
            <div class="date">
                {{ post.published_date }}
            </div>
            <h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
            <p>{{ post.text|linebreaksbr }}</p>
        </div>
    {% endfor %}
{% endblock %}

글 제목을 post_detail.html페이지로 넘겨줄 예정.

$vi urls.py
urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('post/<int:pk>/',views.post_detail, name='post_detail'),
]

urls.py에서 경로 설정.

$vi views.py

#---------------------------------POST PAGE
from django.shortcuts import render, get_object_or_404
def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'blog/post_detail.html', {'post':post})

views.py에서 post_detail 열렸을 때 할 일 추가.

$vi templates/blog/post_detail.html

{% extends 'blog/base.html' %}

{% block content %}
    <div class="post">
        {% if post.published_date %}
            <div class="date">
                {{ post.published_date }}
            </div>
        {% endif %}
        <h1>{{ post.title }}</h1>
        <p>{{ post.text|linebreaksbr }}</p>
    </div>
{% endblock %}

post_detail.html 페이지 추가하면

 

잘 되는것을 확인할 수 있다.