본문 바로가기

SERVER/Django

[Django] Django 앱 작성하기 tutorial (part1)


Part 1. 설문조사 앱 프로젝트 만들기

먼저 프로젝트는 파이참 가상환경에 진입해서 실행하였다. 

 

1. 프로젝트를 생성할 디렉토리에서 mysite 디렉토리 생성

$ django-admin startproject mysite

 

2. 앱 만들기. manage.py가 존재하는 디렉토리에서 설문조사 앱 생성

$ python manage.py startapp polls

 

3. 첫번째 view를 작성해보자. polls/views.py에 view를 작성할 수 있다.

from django.http import HttpResponse


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

 

 4. 해당 view를 호출하기 위해서는 연결된 url이 있어야하므로 URLconf 생성한다. polls 디렉토리에 urls.py라는 파일을 생성하면 된다. 해당 파일에 다음과 같이 작성할 수 있다.

from django.urls import path

from . import views

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

 

5. 최상위 URLconf 에서 polls.urls 모듈을 바라보게 설정해야 한다. 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),
]

include() 함수는 다른 URLconf들을 참조할 수 있도록 도와준다. Django가 함수 include() 를 만나면, URL의 앞 주소까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달한다.

 

6. 앱을 실행해보자.

$ python manage.py runserver

 

7.  http://localhost:8000/polls/ 를 입력하면 결과를 확인할 수 있다.

 

※ path() 로 전달되는 인자들

1. route: url 패턴을 가진 문자열. 패턴은 get, post의 매개변수들과 도메인 이름을 검색하지않는다. 예를 들어 http://localhost:8000/polls/?page=4&id=2 과 같은 요청이 있어도 polls/ 부분만 의미가 있다.

2. view: Django 에서 일치하는 패턴을 찾으면, HttpRequest 객체를 첫번째 인수로 한 특정한 view 함수를 호출한다.

3. kwargs: 임의의 키워드 인수들이 목표한 view에 사전형으로 전달된다.

4. name: url에 이름을 지어 django 어디에서나 명확하게 참조할 수 있게 한다.