We.TIL 15 : Django Tutorial#1

keywookim·7일 전
0

We.TIL

목록 보기
24/32

Django Tutorial의 목적

예시와 설명, 예제코드를 통해 간단한 설문조사(poll) application을 만드는 과정을 따라하면서 Django의 활용법을 익힌다.

장고의 version 확인

python -m django --version라는 명령어로 확인이 가능하다.

새로운 장고 프로젝트 만들기

코드를 저장할 디렉토리로 이동 한 후, 다음의 명령어를 입력하면 된다.
django-admin startproject mysite
mysite란 이름말고 다른 이름으로 프로젝트를 생성해도 상관은 없지만, Django내에서 default값으로 설정되어있는 이름을 피해주는게 좋다.

startproject로 기본적으로 생성되는 것들


manage.py : 장고 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인의 유틸리티다.
mysite/ : 프로젝트 디렉토리 내부에는 프로젝트를 위한 실제 파이썬 패키지들이 저장된다. 이 디렉토리 내의 이름을 이용하여 프로젝트 어디서나 파이썬 패키지들을 임포트 할 수 있다.
mysite/__init.py__ : 파이썬으로 하여금 이 디렉토리를 패키지로 다루라고 알려주는 단순한 용도의 파일이다.
mysite/settings.py : 현재 장고 프로젝트의 환경 및 구성을 저장한다.
mysite/urls.py : 현재 장고프로젝트의 URL선언을 저장한다. 장고로 작성된 사이트의 목차라고 할 수 있다.
mysite/asgi.py : scope와 coroutine이 포함되어있는 서버게이트웨이, WSGI와 달리 다양한 멀티프로토콜을 지원한다.
mysite/wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점이다.

개발서버 실행

python manage.py runserver를 입력하면 현재 장고프로젝트와 연결된 개발서버가 실행된다.
초기 개발서버는 기본적으로 http://127.0.0.1:8000/로 연결된다. 외부와 연결될 수 있는 서버를 구축하고 싶다면 python manage.py runserver 0:8000을 실행해보자.

설문조사 앱 만들기

manage.py가 존재하는 디렉토리에서 python manage.py startapp polls를 입력해보자.

다음과 같은 구조의 polls란 디렉토리가 생성된다. 이 디렉토리 구조는 투표 어플리케이션의 HOME으로 작동하게 된다.

첫 번째 뷰를 작성해보자.

다음과 같은 파이썬코드로 간단한 형태의 뷰를 생성할 수 있다. 뷰를 호출하려면 이와 연결된 URL이 필요하고, 이를 위해 URLconf가 사용된다. polls 디렉토리에서 URLconf를 생성하려면 urls.py라는 파일을 생성해야 한다. 그리고 polls/urls.py 에는 다음과 같은 코드가 포함되어 있다.

다음은 최상위 URLconf에서 polls모듈을 바라보게 설정합니다. mysite/urls.py를 열고 django.urls.include를 import하고, urlpatterns 리스트에 include함수를 다음과 같이 추가합니다.

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

include()의 숨겨진 기능 덕분에 URL을 쉽게 연결할 수 있다. polls앱 그 자체의 URLconf(polls/urls.py)가 존재하는 한 "/polls/" "fun_polls" "content/polls"와 같은 경로, 또는 그 어떤 다른 root 경로에 연결하더라도, 앱은 여전히 잘 동작할 것 이다.

이제 index뷰가 URLconf에 연결되었다. 연결이 성공적이라면 브라우저에http://localhost:8000/polls/를 입력하면 index 뷰에 정의한 "Hello, world. You're at the polls index." 가 보일 것 이다.

path()함수의 네 가지 인수

route : route는 url패턴을 가진 문자열이다. 요청이 처리될 때, 장고는 urlpatterns의 첫 번째 패턴부터 시작하여, 일치하는 패턴을 찾을 때까지 요청된 URL을 각 패턴과 리스트의 순서대로 비교합니다.

view : Django에서 일치하는 패턴을 찾으면, HttpRequest 객체를 첫 번째 인수로 하고, 경로로 부터 캡처된 값을 키워드 인수로 하여 특정한 view 함수를 호출한다.

kwargs : 임의의 키워드 인수들을 목표한 view에게 딕셔너리 형태로 전달한다.

name : URL에 이름을 지으면, 템플릿을 포함한 장고 어디에서나 명확하게 참조할 수 있다. 이 강력한 기능을 이용하여 단 하나의 파일만 수정해도 프로젝트 내의 모든 URL 패턴을 바꿀 수 있도록 도울수 있다.

profile
슬기로운 개발자생활

0개의 댓글