[Django] tutorial #1-app

์ •๋ณด๊ตฌ๋‹ˆยท2021๋…„ 11์›” 24์ผ
0

Django

๋ชฉ๋ก ๋ณด๊ธฐ
2/15
post-thumbnail

Django๋Š” ์•ฑ(app)์˜ ๊ธฐ๋ณธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์ด๋•Œ ํ”„๋กœ์ ํŠธ์™€ ์•ฑ์˜ ์ฐจ์ด๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž๋ฉด,
์•ฑ์€ ํŠน์ •๊ธฐ๋Šฅ๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ, ํ”„๋กœ์ ํŠธ๋Š” ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋ฐ ์•ฑ์˜ ๋ชจ์Œ์ง‘์ด๋‹ค.

์ฆ‰ ํ”„๋กœ์ ํŠธ์—๋Š” ์—ฌ๋Ÿฌ ์•ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๊ณ , ์•ฑ์€ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์— ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ง์ด ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š์•„ ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค.
์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ(ํ”„๋กœ์ ํŠธ)๋ฅผ ์ฐจ๋ฆฌ๊ธฐ ์œ„ํ•ด ์•ฑ์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์„ ๋•Œ,
์ฃผ๋ฌธ์„ ์œ„ํ•œ ์ฃผ๋ฌธ์•ฑ, ๊ฐ€๊ฒŒ ์ด๋ฒคํŠธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ด๋ฒคํŠธ์•ฑ, ์ž์žฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ž์žฌ์•ฑ๊ณผ ๊ฐ™์ด ํŠน์ •ํ•œ ๊ธฐ๋Šฅ๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์•ฑ์„ ๊ฐ๊ฐ ๋งŒ๋“ค์–ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.



์„ค๋ฌธ์กฐ์‚ฌ ์•ฑ ๋งŒ๋“ค๊ธฐ


manage.pyํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•œ๋‹ค.

(venv) python manage.py startapp polls

๊ทธ๋Ÿผ polls์ด๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py



์ฒซ๋ฒˆ์งธ ๋ทฐ ์ž‘์„ฑํ•˜๊ธฐ


polls/view.py๋ฅผ ์—ด์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

- polls/view.py

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

์ž‘์„ฑํ•œ ๋ทฐ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ URL์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ทฐ์™€ ์—ฐ๊ฒฐํ•ด์ค˜์•ผ ํ•œ๋‹ค.

polls/๋””๋ ‰ํ† ๋ฆฌ์— urls.py๋ผ๋Š” ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

polls/urls.py์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค

- polls/urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

๋‹ค์Œ์œผ๋กœ๋Š” ์ตœ์ƒ์œ„ URLconf์— polls.urls์„ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.
์ด๋•Œ ์ตœ์ƒ์œ„ URLconf๋Š” mysite/urls.py์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

๋”ฐ๋ผ์„œ mysite/urls.py๋ฅผ ์—ด์–ด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

- mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž๋ฉด,
์ตœ์ƒ์œ„ URLconf์—์„œ url์„ ํŒŒ์‹ฑํ•˜๊ณ  ๋ฐ›์•„์„œ path๋ณ„๋กœ ๋‹ค๋ฅธ ์•ฑ์œผ๋กœ ๋ถ„๊ธฐ๋ฅผ ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค !


py manage.py runserver๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  http://127.0.0.1:8000/polls์— ๋“ค์–ด๊ฐ€ ํ™•์ธํ•ด๋ณด๋ฉด ์ž˜ ์—ฐ๊ฒฐ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.



์ด๋ ‡๊ฒŒ ํ•ด์„œ ์žฅ๊ณ ๋ฅผ ๊ตฌ๋™ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ธฐ๊นŒ์ง€ ์™„์„ฑํ•˜์˜€๋‹ค !

0๊ฐœ์˜ ๋Œ“๊ธ€