새로운 프로젝트 생성하기
이제 Django를 통해 프로젝트를 생성해보자. 하나의 프로젝트를 생성할 때는 다음과 같은 명령을 한다. startproject 다음에 본인이 원하는 프로젝트 이름을 입력하여 프로젝트를 생성한다.
프로젝트 이름 다음에 현재 경로를 나타내는 "."을 추가하면 현재 경로에 바로 프로젝트가 생성이된다.
$ django-admin startproject [프로젝트 이름] |
프로젝트가 생성되었다면 파일의 구조는 다음과 같을 것이다.
manage.py : 웹 서버를 실행하고 새로운 애플리케이션을 생성하는 등의 명령을 한다.
__init__.py : Python에게 해당 디렉토리를 패키지처럼 다룰 수 있도록 알려주는 파일이다.
settings.py : Django 프로젝트의 환경 및 구성을 저장하며 환결 설정이 어떻게 동작하는지 확인할 수 있다.
urls.py : 현재 프로젝트의 URL 선언을 저장하며 웹 브라우저로부터 요청이 들어오면 처음에 거치는 파일이다.
my_project/ manage.py my_project/ __init__.py settings.py urls.py asgi.py wsgi.py |
서버 실행하기
프로젝트 생성 후에 웹 서버가 정상적으로 동작하는지 알아보기 위해 다음과 같은 명령어를 입력한다. 그렇다면 웹 서버가 실행이 된다.
$ python manage.py runserver |
새로운 어플리케이션 생성하기
프로젝트 내에 어플리케이션을 생성하여 프로젝트를 만들어나간다. 어플리케이션을 생성하기 위해서는 다음과 같은 명령어를 입력하도록 한다. 어플리케이션 이름에는 복수형으로 끝에 s를 붙여서 명명한다.
$ python manage.py startapp [어플리케이션 이름] |
새로운 어플리케이션을 생성했다면 settings.py로 이동하여 어플리케이션을 등록한다. settings.py 내의
INSTALLED_APPS에 어플리케이션을 등록하는데 기존에 있는 목록을 포함하여 최상단에 정의한다. Django는 개발자가 생성한 어플리케이션 -> 3rd의 어플리케이션 -> built-in 어플리케이션 순으로 등록을 하도록 되어있다.
어플리케이션의 views.py에서 새로운 기능을 하는 함수를 정의했다면 urls.py에 이동하여 URL을 등록해야한다. 초기의 urls.py는 다음과 같은 코드로 구성되어 있으며 urlpatterns 리스트에 새로운 어플리케이션에서 정의한 URL를 등록한다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
View 함수 정의하기
View는 웹 브라우저에서 요청한 내용을 처리하는 역할을 한다. 새롭게 생성한 views.py에 요청을 처리하기 위한 함수를 정의해보자.
요청을 받았다면 render 모듈을 통해 렌더링을 하여 index.html을 보여주도록 한다. index.html과 같은 html문서는 templates라는 폴더에서 생성하도록한다.
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
Template 생성하기
사용자에게 보여지는 화면을 구성하기 위해서 어플리케이션 폴더 내에 templates라는 폴더를 생성한다. Django에서는 html문서를 찾을 때 templates에서 찾도록 되어있기 때문에 이름을 정확하게 설정해야한다. 위에서 처럼 index.html을 생성하였다면 urls.py에 URL을 다음과 같이 등록한다. 어플리케이션 이름을 pages라고 하자.
from django.contrib import admin
from django.urls import path
from pages import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
]
첫 번째 프로젝트를 생성하여 간단하게 Django에 대해 알아보았다. 정리를 해보면
1. 어플리케이션 생성 후에 settings.py에 등록한다.
2. 어플리케이션의 views.py에서 요청을 처리하는 함수를 정의한다.
3. view에 의해 사용자에게 보여지는 화면을 templates 폴더 내에 html를 생성한다.
4. template 생성 후에 urls.py에 URL을 등록한다.
'WEB' 카테고리의 다른 글
[Django 03] 템플릿 상속 (0) | 2021.03.08 |
---|---|
[Django 02] Django Template Language(DTL) (0) | 2021.03.08 |
[Django 00] Intro (0) | 2021.03.08 |
[CSS] flex 속성 (0) | 2021.01.19 |
[WEB] API가 무엇일까? (0) | 2021.01.15 |