Django 공식 문서로 공부하는 Django #1

이정욱·2022년 4월 23일
0

Djanguk

목록 보기
1/2

첫 번째 장고 앱 작성하기, part 1

Django 공부를 위해 구름ide라는 클라우드 기반의 개발환경으로 공식 문서를 통해 간단한 설문조사 앱을 만들어 보기로 했다.

개발환경은 리눅스 기반

프로젝트 만들기

Django를 통해 만들 어플케이션은 프로젝트의 형식으로 구성요소들이 설정된다.

django-admin startproject myiste

위의 명령어를 통해 mysite라는 프로젝트를 개설해줬다.

❗️ mysite 부분에 원하는 프로젝트 명을 입력해주면 되지만 Python 또는 Django에서 이미 사용 중인 이름은 피해야한다.

startproject를 통해 생성된 mysite라는 프로젝트는

mysite/
	manage.py
	mysite/
    	__init__.py
    	settings.py
    	urls.py
    	asgi.py
    	wsgi.py   

위의 구조로 생성된다.

  • manage.py : Django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인의 유틸리티이다.

mysite/

  • __init.py__ : python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 빈 파일이다.
  • settings.py : 현재 Django 프로젝트의 환경 및 구성을 저장
  • urls.py : 현재 Django 프로젝트의 URL 선언을 저장. 목차와 비슷한 역할
  • asgi.py : 현재 프로젝트를 서비스하기 위한 ASGI-웹 서버의 진입점
  • wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점

개발서버

Django 프로젝트가 잘 동작하는 지 확인하기 위해서

python manage.py runserver 0.0.0.0:80

runserver까지만 입력하면 기본적으로 127.0.0.1:8000으로 열리지만 현재 사용중인 구름ide 개발환경에서는 해당 IP와 포트번호로 접속이 되지 않아 0.0.0.0의 IP와 80의 포트번호를 사용하였다.

설문조사 앱 만들기

이제 앱을 개발할 환경이 구성되었으니 mysite라는 프로젝트 안에 polls라는 설문조사 어플리케이션을 개발한다.

python manage.py startapp polls

위의 명령어를 통해 polls라는 투표 어플리케이션의 틀을 만들어 주었다. 위치는 /mysite 에 바로 개설해주어 manage.py와 같은 경로에 있다.

polls/
	__init__.py
	admin.py
	apps.py
	migrations/
    	__init__.py
	models.py
	tests.py
	views.py

디렉토리 구조는 다음과 같다.

첫 번째 뷰 작성하기

polls/views.py 를 통해 polls의 뷰를 작성해줄 수 있다.

from django.http import HttpResponse

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

HttpResponse를 통해 html 파일을 따로 사용하지 않고, 클라이언트에게 response를 줄 수 있다.

이렇게 작성된 index는 /polls/urls.py의 path()를 통해 클라이언트로부터 받아온 request를 넘겨받는다.

from django.urls import path

from . import views

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

위의 path()는
path(route, view, kwargs=None, name=None)
에서 kwargs를 제외한 route, view, name을 인수로 받았다.
route''로 홈페이지의 최상의 인덱스로 지정되었고
viewiew.index 이전에 작성한 polls/view.py에서 index를 view로 지정한 것이고
name'index'로 지정해줬다

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

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

그 이후에 mysite/urls.py를 include() 통해 polls하위의 인덱스가 'polls.urls'의 URLconf를 참조할 수 있도록 도와준다.

0개의 댓글