[Django] 1. 장고 튜토리얼 part 1

김학재·2021년 12월 19일
0

백엔드

목록 보기
2/8
post-thumbnail

프로젝트 만들기

django-admin startproject 프로젝트명

나는 튜토리얼 그대로 프로젝트 명을 mysite로 지정함

파일 구조
(튜토리얼과 조금 차이 존재)

mysite/
  manage.py
  mysite/
    __init__.py
    settings.py
    urls.py
    wsgi.py
  • manage.py
    장고 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인의 유틸리티. django-admin과 같은 역할을 하지만 DJANGO_SETTINGS_MODULE 환경 변수의 설정을 통해 프로젝트의 settings.py파일을 가리키게 할 수 있다.
  • mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 파이썬 패키지들이 저장됨.
  • mysite/__init__.py
    파이썬으로 하여금 이 디렉토리를 패캐지처럼 다루라고 알려주는 용도의 단순한 빈 파일
  • mysite/settings.py
    현재 장고 프로젝트의 환경 및 구성을 저장
  • mysite/urls.py
    현재 장고 프로젝트의 URL 선언을 저장
  • mysite/wsgi.py
    현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점

개발 서버 실행

python manage.py runserver

runserver의 자동 변경 기능으로 인해 개발 서버는 요청이 들어올 때마다 자동으로 파이썬 코드를 다시 불러온다. 즉, 코드의 변경사항을 반영하기 위해 굳이 서버를 재기동하지 않아도 된다.
그러나, 파일을 추가하는 등의 동작은 개발서버가 자동으로 인식하지 못하기 때문에 서버를 재기동 해야한다.

설문조사 앱 만들기

python manage.py startapp 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

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

뷰를 호출하려면 이와 연결된 URL이 있어야 하는데, 이를 위해 URLconf가 사용된다.
polls 디렉토리에서 URLconf를 생성하려면, urls.py라는 파일을 생성해야 한다.

# polls/urls.py
from django.urls import path
from . import views

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

다음 단계는, 최상위 URLconf에서 polls.urls 모듈을 바라보게 설정한다.
mysite/urls.py 파일을 다음과 같이 수정.

# mysite/urls.py
from django.contrib import admin
from django.urls import include, path

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

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

polls앱에 자체의 URLconf(polls/urls.py)가 존재하는 한 그 어떤 다른 root 경로에 연결하더라도 앱은 잘 동작할 것이다.

path()
path() 함수에는 2개의 필수 파라미터인 route와 view, 2개의 선택 파라미터인 kwargs, name 총 4개의 파라미터가 전달되었다.

  • route
    URL 패턴을 가진 문자열. 요청이 처리될 때, 장고는 urlpatterns의 첫번째 패턴부터 시작해 일치하는 패턴을 찾을 때까지 요청된 URl을 각 패턴과 리스트의 순서대로 배교한다.
  • view
    일치하는 패턴을 찾으면, HttpRequest 객체를 첫번째 인수로 하고, 경로로부터 캡처된 값을 키워드 인수로 하여 특정한 view 함수를 호출한다.

이제 index 뷰가 URLconf에 연결되었다.

profile
YOU ARE BREATHTAKING

0개의 댓글