[Django] Django 시작하기 1 (설치, 샘플 프로젝트 만들기)

파이썬 백엔드를 구성하는 프레임워크중 가장 대표적인 것 중 하나 Django가 있죠.

 

항상 FastAPI로 API를 구성해오다가

아직은 대중적으로 쓰이는 것이 Django라 하여 Udemy 강의를 듣고 정리해보았습니다.

 

Django 설치

 

* conda 가상환경이 설치되어 있다는 가정 하에 진행됩니다.

 

 

우선 conda 가상환경을 설치해줍니다.

conda create -n jango python=3.10

 

가상환경 설치시 python이 아닌 django를 먼저 설치 후 나중에 python을 설치하려고 하면

기본적으로 python2가 설치됩니다.

따라서 파이썬을 먼저 설치해주었습니다.

 

 

다음으로 가상환경 활성화 후 conda install을 통해 djnago를 설치합니다.

conda activate jango
conda install django

설치

 

다음과 같이 설치 된 것을 확인할 수 있습니다.

 

(만약 설치 오류가 난다면 conda 가상환경을 재설치해보세요!)

 

샘플 프로젝트 만들기

 

django-admin startproject first_project[폴더 이름]

 

conda를 이용해 django를 성공적으로 설치하였으면,

다음 명령어를 통해 샘플 프로젝트를 만들 수 있습니다. 

샘플 프로젝트

 

다음과 같이 프로젝트가 자동으로 생성된 것을 확인할 수 있습니다.

 

생성된 파일들은 아래의 값들을 의미합니다.

  • setting.py → project setting을 저장하는 공간
  • urls.py → project의 모든 url 패턴들을 저장하는 공간
  • wgsi.py → 웹 서버와 python 웹 어플리케이션 또는 프레임워크 사이의 표준 인터페이스를 정의함
  • manage.py → 웹앱으로 만드는 많은 명령어들을 관리합니다.

 

manage.py 는 아래 명령어를 통해 실행시킬 수 있습니다.

python manage.py runserver

 

 

샘플 애플리케이션 만들기

python manage.py startapp first_app[앱 이름]

 

다음과 같이 코드를 입력하면 아래와 같이 샘플 애플리케이션 프로젝트를 생성해줍니다. 

샘플 애플리케이션

 

 

Hello World 페이지 만들기

 

생성한 샘플 애플리케이션 내의 views.py 로 진입합니다.

 

views.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
    return HttpResponse("HELLO WORLD!")

 

HttpResponse를 추가해주고,

이에 대한 응답으로 HELLO WORLD 문자열을 추가해줍니다.

 

HttpResponse를 추가해주었다고 바로 문자열이 페이지 내에서 생성되진 않고,

엔드포인트를 설정해주어야 합니다.

 

project 루트 파일의 urls.py로 진입합니다.

 

 

urls.py

from django.contrib import admin
from django.urls import path
from first_app import views
urlpatterns = [
    path("admin/", admin.site.urls),
    path("", views.index, name="index")

 

강의상으로는 path가 아닌 url로 지정되어 있었는데

버전이 안맞아서 인지 호환이 되지 않았습니다.

 

* django 2.0 이후부터는 url() 대신 path() 함수를 사용하는 것을 권장한다고 합니다.

 

루트 경로로 지정하고 싶다면 위와 같이 "" 빈 문자열을 엔드포인트로 설정하면 됩니다.

 

 

 

settings.py 파일로 진입해 Installed Apps의 목록에 "first_app"을 추가해줍니다.

 

settings.py

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "first_app"
]

 

 

 

이후 다시 서버를 실행시킵니다.

 

HttpResponse

 

localhost:8000 포트번호로 접속하면,

다음과 같이 페이지가 잘 설정된 것을 확인할 수 있습니다.

'기타 등등 > Python Framework' 카테고리의 다른 글

[Streamlit] 스트림릿 시작하기  (1) 2023.12.19