Django : 장고 tutorial 앱 작성하기 2단계

Jinsung·2021년 11월 10일
0
post-custom-banner

가상환경에 장고 설치

pip install django

장고 버전 확인

python -m django --version

프로젝트 생성

가상환경 위에서 mysite라는 프로젝트 생성해보자.

django-admin startproject mysite

각각의 파일들이 어떤 것을 의미하는지 살펴보자.

  • manage.py : Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티이다. 간단히 장고의 명령어를 처리하는 파일
  • mysite/ : mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다. 이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 Python 패키지들을 임포트할 수 있다.
  • mysite/init.py: : Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일이다.
  • mysite/settings.py: : 현재 Django 프로젝트의 환경 및 구성을 저장한다. Django settings에서 환경 설정이 어떻게 동작하는지 확인할 수 있다. 간단히 프로젝트의 전체적인 세팅
  • mysite/urls.py : 현재 Django project 의 URL 선언을 저장한다. Django 로 작성된 사이트의 《목차》 라고 할 수 있다. url맵핑 요청을 받았을때 어떤 view를 찾아야할지 매핑해주는 브릿지 역할
  • mysite/asgi.py : 프로젝트를 제공하기 위한 ASGI 호환 웹 서버의 진입점입니다.
  • mysite/wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점이다.

개발 서버 시작하기

python manage.py runserver

주소창에 127.0.0.1:8000 입력하면

프로젝트에 app 추가하기

python manage.py startapp "app이름"

view 작성하기

#경로
vi polls/views.py

from django.http import HttpResponse


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

위에 작성한걸 호출할려면 view와 연결된 url이 있었야 하는데, 이를 위해 urlconf가 사용됩니다.
polls디렉토리에 urls.py라는 파일에 경로를 적고

vi polls/urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'), # http://127.0.0.1/polls/ 입력시 index view를 바라본다
]

최상위 urlconf에서 pulls/urls에서 모듈을 바라보게 설정한다.
mysite/urls.py 파일에 django.urls.include를 import하고 urlpatterns 리스트에 include()함수를 추가한다. include()함수는 다른 urlconf들을 참조할 수 있도록 도와준다.

vi 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),
]

이제 브라우저에서 http://localhost:8000/polls/를 입력하면 index 뷰에 정의한 《Hello, world. You’re at the polls index.》 가 보일 것입니다.

위에서 진행 방식을 보면 view를 계산된걸 가지고 있거나 계산된걸 돌려주고 경로는 최상위 urlconf에서 하위 urlconf를 바라보고 하위 urlconf는 함수를 지정해 해당 함수를 출력

post-custom-banner

0개의 댓글