Django View & URL (2)
์ฅ๊ณ ๋ URLconf(URL configuration)์ ์ฌ์ฉํ๋ค. URLconf ๋ URL ํจํด์ views์ ์ฐ๊ฒฐํ๋ค. ์ด์ ์ Django View ์ URL (1)์์ url์ ์ ๊น ๋ค๋ฃฌ์ ์ด ์๋ค. ์ด ์ฅ์์ ๋ ์์ธํ ์ดํด๋ณผ ๊ฒ์ด๋ค.
View์ URL
views.py
# app/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("<h1>Hello, world</h1>")
def detail(request, question_id):
return HttpResponse("You're looking at question %s" % question_id)
def results(request, question_id):
response = "You're looking at the results %s"
return HttpResponse(response % question_id)
def vote(request, question_id):
return HttpResponse("You're voting on question %s" % question_id)urls.py
๋ค์๊ณผ ๊ฐ์ด view์ url์ ์ฐ๊ฒฐํ ์ ์๋ค.
http://localhost:8000/polls, http://localhost:8000/polls/1, http://localhost:8000/polls/1/results, http://localhost:8000/polls/1/vote ์ ๊ฐ์ url๋ก view์ ์ ๊ทผํ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ํ์ด์ง๋ฅผ ์์ฒญํ๋ฉด Django๋ mysite.urls(project.urls) ํ์ด์ฌ ๋ชจ๋์ ๋ถ๋ฌ์จ๋ค. ๊ฑฐ๊ธฐ์ urlpatterns ๋ณ์๋ฅผ ์ฐพ์ ์์๋๋ก ํจํด์ ๋ฐ๋ผ๊ฐ๋ค. ๊ทธ url์ ๋ง๋ viewํจ์๋ฅผ ํธ์ถํ๊ฒ๋๋ค.
show_urls
ํ์ฌ ํ๋ก์ ํธ์ ์ค์ ๋์ด์๋ URL์ ํ๋ฒ์ ๋ณผ ์ ์๋ค. ์ฐ์ django-extensions ํจํค์ง๋ฅผ ์ค์นํด์ค๋ค. [์ค์นํ๊ธฐ]
๊ทธ๋ฆฌ๊ณ ๋ํ settings.py์ ์ค์ ํด์ค๋ค.
์ฌ๊ธฐ์ url์ ํ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด๋๋ค.
View
๊ฐ View๋ 1. ์์ฒญ๋ ํ์ด์ง์ ๋ด์ฉ์ด ๋ด๊ธด HttpResponse ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ฑฐ๋, 2. ์์ธ์ฒ๋ฆฌ(Http404)๋ฅผ ํ๋๋ก ๋์ด์๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ ์ฝ๋ ์ฝ๊ธฐ
ํ ํ๋ฆฟ ์์คํ ์ฌ์ฉ
PDF ์์ฑ
XML ์ถ๋ ฅ
์ค์๊ฐ ZIP ํ์ผ ์์ฑ
view๋ ๋ค์๊ณผ ๊ฐ์ ์ผ์ ํ ์ ์์ผ๋ฉฐ, python์ ์ด๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉํ ์ ์๋ค.
Database API ์ฌ์ฉํ๊ธฐ
Database API์ ์ ๊ทผํ๊ณ ์์ง๋ง ์ฌ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ์๋ค. View์์ ํ์ด์ง์ ๋์์ธ์ ํ๋์ฝ๋ฉ ํ๊ณ ์๋ ์ ์ด๋ค. ํ ํ๋ฆฟ(template)์ ์ด์ฉํด์ python์ฝ๋๋ก ๋ถํฐ ๋์์ธ์ ๋ถ๋ฆฌํ ์ ์๋ค.
์ฐธ์กฐ
๊ณต์๋ฌธ์ : https://docs.djangoproject.com/ko/2.1/topics/http/urls/
Last updated
Was this helpful?