Notice
Recent Posts
Recent Comments
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐ŸŒฒ์ž๋ผ๋‚˜๋Š”์ฒญ๋…„

[์žฅ๊ณ ] ์ฒซ ๋ฒˆ์งธ ์žฅ๊ณ  ์•ฑ ์ž‘์„ฑํ•˜๊ธฐ 3(view + ํ…œํ”Œ๋ฆฟ + url) ๋ณธ๋ฌธ

django

[์žฅ๊ณ ] ์ฒซ ๋ฒˆ์งธ ์žฅ๊ณ  ์•ฑ ์ž‘์„ฑํ•˜๊ธฐ 3(view + ํ…œํ”Œ๋ฆฟ + url)

JihyunLee 2019. 9. 17. 16:19
๋ฐ˜์‘ํ˜•

https://docs.djangoproject.com/ko/2.2/intro/tutorial03/

 

์ฒซ ๋ฒˆ์งธ ์žฅ๊ณ  ์•ฑ ์ž‘์„ฑํ•˜๊ธฐ, part 3 | Django ๋ฌธ์„œ | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

 

๋ทฐ + ํ…œํ”Œ๋ฆฟ + url + ์—๋Ÿฌ์ฒ˜๋ฆฌ

 

ํŠœํ† ๋ฆฌ์–ผ์€ .. ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์ง€ ์•Š๊ณ , ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ ์‰ฝ์ง€๋งŒ.. ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์•Œ๋ ค์ฃผ์–ด์„œ ๋‚˜๋Š” ์—ฌ๊ธฐ์— ์ •๋ฆฌ๋œ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๊ฒ ๋‹ค.

 

 

1. polls/url.py

 

์ „ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ๋งŒ๋“  ์งˆ๋ฌธ - ์‘๋‹ต(์—ฌ๋Ÿฌ๊ฐœ) ์„ธํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ด์•ผํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ๋จผ์ € url์„ ์„ค์ •ํ•ด์ค€๋‹ค.

(์‚ฌ์‹ค ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.urls import path
 
from . import views
app_name = 'polls'
urlpatterns = [
    # ex: /polls/
    path('', views.index, name='index'),
    # ex: /polls/5/
    path('<int:question_id>/', views.detail, name='detail'),
    # ex: /polls/5/results/
    path('<int:question_id>/results/', views.results, name='results'),
    # ex: /polls/5/vote/
    path('<int:question_id>/vote/', views.vote, name='vote'),
]
cs

์œ„์™€ ๊ฐ™์ด urls.py ๋ฅผ ์ˆ˜์ •ํ•ด ์ฃผ๋ฉด ๋˜๋Š”๋ฐ, ์ฃผ์„์— ์ž˜ ์„ค๋ช… ๋œ ๋Œ€๋กœ, <int:question_id> ์š” ๋ถ€๋ถ„์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์˜ค๋Š” ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  path์— ์žˆ๋Š” name์ด ์žˆ๋Š”๋ฐ ์ด  name์„ ์ด์šฉํ•ด์„œ view์˜ ํ•จ์ˆ˜๋“ค๊ณผ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. polls/views.py

 

404 ์—๋Ÿฌ์ฒ˜๋ฆฌ, Questionํ…Œ์ด๋ธ”์—์„œ key๊ฐ’์„ ์ด์šฉํ•ด์„œ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ renderingํ•ด์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค.

'polls/detail.html' ์— {question: question} ์ •๋ณด๋ฅผ ์ „์†กํ•ด์„œ, ํ…œํ”Œ๋ฆฟ ์•ˆ์— ์ •๋ณด๊ฐ€ ๋ณด์—ฌ์ง€๊ฒŒ ํ•œ๋‹ค.

1
2
3
4
5
6
7
from django.shortcuts import get_object_or_404, render
 
from .models import Question
# ...
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})
cs

3. polls/templates/polls/detail.html

์•„๊นŒ ๋ฐ›์•„์˜จ ์ •๋ณด๋ฅผ html๋กœ ๊พธ๋ฉฐ์ฃผ๋ฉด, ํ™”๋ฉด์— ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋ณด์—ฌ์ง„๋‹ค.

1
2
3
4
5
6
<h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
    <li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>
cs

 

๋ฐ˜์‘ํ˜•