Django를 설치하였다는 가정 하에 tutorial을 하나씩 진행해보도록 하겠습니다.
가상환경을 만들고 Django를 설치하셨다면 프로젝트를 만들어야합니다.
해당 프로젝트를 만드려고하는 디렉토리로 이동하여 프로젝트를 생성해줍니다.
저는 mysite라는 프로젝트를 생성해보도록 하겠습니다.
$ django-admin startproject mysite[생설할 Project이름]
(Project를 생성할 때엔 _django, _test등 패키지의 이름과 중복되는 이름은 피해야합니다!)
프로젝트가 생성되었다면 잘 생성되었는지 확인하기 위하여 tree를 통해 확인해봅니다.
아래와 같은 구조로 생성되었다면 프로젝트는 성공적으로 생성되었습니다.mysite/ manage.py/ mysite/ __inti__.py settings.py urls.py assgi.py wsgi.py
우선 튜토리얼에서 다루는 주요한 파일의 기능을 간단하게 알아보겠습니다.
manage.py : Django 프로젝트와 상호작용하는 커맨드라인의 유틸리티 입니다.
mysite/settings.py : 프로젝트의 환경 및 구성을 저장합니다.
mysite/urls.py : 현재 장고 프로젝트의 URL을 선언합니다.
이제 프로젝트가 동작하는지 서버를 구동하여 확인해보도록 하겠습니다.
mysite 디렉토리로 이동하여 서버를 구동하는 명령어를 입력합니다.$ python manage.py runserver /http://127.0.0.1:8000으로 서버 접속
$ python manage.py runserver 8080 //http://127.0.0.1:8080으로 서버 접속
해당 명령어를 입력하면 서버에 접속할 수 있습니다.
이제 프로젝트를 만들었으니, App을 만들어 보도록 하겠습니다.
프로젝트를 생성한 mysite의 디렉토리를 이동하여 아래 명령어를 실행하여 app을 생성합니다.$ python manage.py startapp polls
polls/ __init__.py admin.py apps.py migrations/ __inti__.py models.py tests.py views.py
polls/views.py를 열어 다음과 같이 입력합니다.
from django.http import HttpResponse def index(request): return HttpResponse("Hello, World. You are at the polls index.")
index 함수를 호출하는 request가 오면 HttpResponse를 다음과 같이 보내줍니다.
해당 View를 호출하기 위해서는 URL이 있어야하는데, 이를 위해 URLconf를 사용합니다.
polls 디렉토리에 URLconf를 생성하려면 urls.py 파일을 생성합니다.
polls/urls.py 파일에 다음과 같은 코드를 입력합니다.from django.urls import path <polls/urls.py> from . import views urlpatterns = [ path('', views.index, name='index'), ]
path(route ,view,
**kwargs
) :
route : URL patterns의 첫 번째 패턴부터 시작하여 일치하는 패턴을 찾을때까지 요청 URL을 각 패턴과 리스트의 순서대로 비교합니다.
view : 일치하는 패턴을 찾으면 HttpRequest 객체를 첫번째 인수로 하고, 경로로 부터 갭처된 값을 키워드 인수로하여 특정한 view함수를 호출
kwargs : 임의의 키워드 인수들은 목표한 view에 사전형으로 전달
from django.contrib import admin <mysite/urls.py> from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), //include는 그 시점까지 일치하는 부분을 잘라내고 남은 무자열 부분을 후속 처리를 위해 include된 URLconf로 전달합니다. path('admin/', admin.site.urls), ]
해당 로직을 따라가보면 이렇게 됩니다. 서버로 접속하게되면 mysite.urls를 바라보게 되는데
mysite/urls.py에서 지정한 path를 따라가게됩니다.
1. http://127.0.0.1:8000/polls를 접속하면 polls.urls의 파일을 바라보도록 합니다.
2. http://127.0.0.1:8000/admin을 접속하면 내장되어있는 admin.site.urls를 바라보도록 합니다.
->
3. http://127.0.0.1:8000/polls로 접속하게되면 polls.urls의 views.index 함수를 실행하도록 하였습니다.