polls 디렉토리 생성
> cd /home/django_sample/
> python manage.py startapp polls
# 생성된 polls 디렉토리 구조
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
# polls/views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def index(request):
return HttpResponse('Hello, World. This Is Polls Index()')
def select(request):
return HttpResponse('Hello, Select Method')
Django에서 가장 간단한 형태의 뷰입니다. 뷰를 호출하려면 이와 연결된 URL 이 있어야 하는데, 이를 위해 URLconf가 사용됩니다.
polls 디렉토리에서 URLconf를 생성하려면, urls.py라는 파일을 생성해야 합니다. 정확히 생성했다면, 앱 디렉토리는 다음과 같이 보일 겁니다.
# polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name = 'Index'),
path('select', views.select, name = 'Select')
]
다음 단계는, 최상위 URLconf 에서 polls.urls 모듈을 바라보게 설정합니다. mysite/urls.py 파일을 열고, django.urls.include를 import 하고, urlpatterns 리스트에 include() 함수를 다음과 같이 추가합니다.
"""django_sample URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')),
]
include() 함수는 다른 URLconf들을 참조할 수 있도록 도와줍니다. Django가 함수 include()를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달합니다.
include()에 숨은 아이디어 덕분에 URL을 쉽게 연결할 수 있습니다. polls 앱에 그 자체의 URLconf(polls/urls.py)가 존재하는 한, "/polls/", 또는 "/fun_polls/", "/content/polls/"와 같은 경로, 또는 그 어떤 다른 root 경로에 연결하더라도, 앱은 여전히 잘 동작할 것입니다.
언제 include()를 사용해야 하나요?
다른 URL 패턴을 포함할 때마다 항상 include()를 사용해야 합니다. admin.site.urls가 유일한 예외입니다.
'Python > Django' 카테고리의 다른 글
Django demo project (chatting, monggo db, sample) (0) | 2020.07.14 |
---|---|
5. Django - Nginx 연동 (0) | 2019.11.11 |
4. Django 모델 및 관리자 (0) | 2019.11.07 |
2. Django 프로젝트 생성 (0) | 2019.10.25 |
1. Django 및 기타 설치 (0) | 2019.10.25 |