[SSAC X 코딩온] (2021.10.01) Django 질문 정리

RyuSW·2021년 10월 1일
0
post-thumbnail

🎧 Django url 관련 내용 이슈


  • views.py

# 게시판 상세 페이지

def board_detail(req, pk):
    login_session = req.session.get('id', '')
    
    context = {'session' : login_session }
    # Django 템플릿에 사용할 파라미터 값을 변수로 선언 > 사용해야할 인자값이 많아질 때 편리하다.

    board = get_object_or_404(Board, id=pk)
    # Board는 필자가 Model에서 설정한 DB 이름

    context['board'] = board

    return render(req, 'board_detail.html', context)
  • urls.py
from django.urls import path, re_path
from . import views
# re_path : url에 정규식을 사용하기 위해 import해야 하는 모듈

urlpatterns = [
    # url에 변수값을 라우팅해야 하는 데 int값이 아닌 str값도 라우팅하고 싶을 때 정규식을 활용하여 다음과 같이 선언한다.
    re_path(r'^boarddetail/(?P<pk>[0-9]+)/$', views.board_detail, name='boarddetail'),
    
    # int값을 pk로 넘기기 위해서 사용
    path('boarddetail/<int:pk>', views.board_detail, name='boarddetail')
    ]
  • board_detail.html

    • views.py 에서 사용했던 board를 불러와서 그 안의 칼럼들을 뽑아냄
{% extends "base.html" %}
{% load static %}
{% block content %}

<div>게시판 상세보기!</div>
<div style="border: 1px black solid; margin: 20px 0px;"></div>

<a href=""><button>수정</button></a>
<a href=""><button>삭제</button></a>

<div>
    게시판 종류 : {{ board.board_name }}
</div>
<div>
    작성자 : {{ board.writer }} | 작성일 : {{ board.write_dttm }} | 조회수 : {{ board.hits }}
</div>
<div>
    제목 : {{ board.title }}
</div>
<div>
    내용 : {{ board.contents|safe }}
</div>

{% endblock %}
  • board_list.html
    설명하기 어렵다

    • url을 다음과 같이 사용함

      • urls.py에서 선언한 pk값을 url 장고 템플릿 언어 안에 넣으면 됨.
      • "{% url 'boarddetail' pk=board.id %}" = "{% url 'boarddetail/board.id' %}"
<div class="board">
    <div class="consulting-board">
        <p>1:1 문의 게시판</p>
        {% for board in consulting_boards %}
        {% if board %}
        <a href="{% url 'boarddetail' pk=board.id %}" target='_self'>
            <div>{{ board.title }} / {{ board.writer }} / {{ board.write_dttm }}</div>
        </a>
        {% endif %}
        {% endfor %}
    </div>




profile
배운 것은 항상 그 때 문서화하자!

0개의 댓글