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)๋ฅผ ํ•˜๋„๋ก ๋˜์–ด์žˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋ ˆ์ฝ”๋“œ ์ฝ๊ธฐ

  2. ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ ์‚ฌ์šฉ

  3. PDF ์ƒ์„ฑ

  4. XML ์ถœ๋ ฅ

  5. ์‹ค์‹œ๊ฐ„ ZIP ํŒŒ์ผ ์ƒ์„ฑ

view๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, python์˜ ์–ด๋– ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Database API ์‚ฌ์šฉํ•˜๊ธฐ

Database API์— ์ ‘๊ทผํ•˜๊ณ  ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. View์—์„œ ํŽ˜์ด์ง€์˜ ๋””์ž์ธ์„ ํ•˜๋“œ์ฝ”๋”ฉ ํ•˜๊ณ  ์žˆ๋Š” ์ ์ด๋‹ค. ํ…œํ”Œ๋ฆฟ(template)์„ ์ด์šฉํ•ด์„œ python์ฝ”๋“œ๋กœ ๋ถ€ํ„ฐ ๋””์ž์ธ์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐ

Last updated

Was this helpful?