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
์ ๋ค์ด๊ฐ ํ์ธํด๋ณด๋ฉด ์ ์ฐ๊ฒฐ๋จ์ ํ์ธํ ์ ์๋ค.
์ด๋ ๊ฒ ํด์ ์ฅ๊ณ ๋ฅผ ๊ตฌ๋ํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ๊น์ง ์์ฑํ์๋ค !