[Django] 설문조사 앱 만들기 part.1

Jungmin Seo·2021년 6월 17일
0

프로젝트 만들기

코드를 저장할 디렉토리로 이동한 후, 다음 명령 수행한다.

# 현재 디렉토리에 mysite라는 디렉토리 생성
$ django-admin startproject mysite

프로젝트 생성 시, python이나 django에서 사용 중인 이름은 피해야 한다.
특히, django, test(python의 패키지 이름 중 하나) 같은 이름은 피해야 한다.


startproject 하면 아래와 같이 생성된다.

  • mysite/ 프로젝트의 root directory. 이름은 아무거나 상관없고, 언제든 변경 가능하다.
    내부에는 프로젝트를 위한 python 패키지들이 저장되며, mysite.urls와 같은 방식으로 프로젝트 내 어디서든 import할 수 있다.
  • manage.py 커맨드라인의 유틸리티
  • mysite/__init__.py 이 디렉토리가 패키지라는 것을 알려주는 용도의 단순한 빈 파일
  • mysite/settings.py 현 django 프로젝트의 환경 및 구성 저장
  • mysite/urls.py 현 django 프로젝터의 URL 선언을 저장.
  • mysite/asgi.py
  • mysite/wsgi.py

개발 서버

mysite 디렉토리로 이동 후

# 기본적으로 runserver는 내부 IP의 8000번 포트로 연결
$ python manage.py runserver

# 서버의 포트를 변경하고 싶다면, 포트번호를 입력해서 전달
$ python manage.py runserver 8080

서버 동작 후, 자신의 웹브라우저에서 http://127.0.0.1:8000/ 로 접속 가능하다.


앱 만들기

manage.py가 존재하는 디렉토리에서 다음의 명령을 입력한다.

# polls라는 디렉토리(어플리케이션의 집) 생성
$ python manage.py startapp polls


뷰(View) 작성하기

# polls/views.py


from django.http import HttpResponse

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

django에서 가장 간단한 형태의 뷰.
뷰를 호출하려면 이와 연결된 URL이 필요한데, 이를 위해 URLconf를 사용한다.
polls 디렉토리에서 URLconf를 생성하려면, urls.py라는 파일 생성해야 한다.

URLconf (URL configuration)

django 에서 URL과 일치하는 view를 찾기 위한 패턴들의 집합


polls/urls.py 파일은 아래와 같은 코드를 포함한다.

# polls/urls.py


from django.urls import path
from . import views

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

최상위 URLconf(mysite/urls.py)에서 polls.urls 모듈을 바라보도록 설정한다.

# mysite/urls.py


from django.contrib import admin
from django.urls import include, path

# include() 함수 추가
# 'polls/', 'admin/'은 경로설정
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

include( ) 함수는 언제 사용할까?

include( ) 함수는 다른 URLconf들을 참조할 수 있도록 도와준다.
다른 URL 패턴을 포함할 때마다 항상 include( )를 사용한다.
*admin.site.urls가 유일한 예외!

가장 하위 디렉토리에 있는 urls.py 내에서path함수 사용할 때,
include 사용 X, views.py 내의 함수를 호출


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

이제 index 뷰가 URLconf에 연결되었으니, 서버를 켜고, http://localhost:8000/polls/ 에 접속하여 확인해본다.

$ python manage.py runserver
profile
Hello World!

0개의 댓글

관련 채용 정보