Django로 Python 웹 애플리케이션 구축

Django는 빠른 개발과 깔끔하고 실용적인 디자인을 장려하는 고급 Python 웹 프레임워크입니다. 웹 개발의 번거로움을 대부분 처리하여 개발자가 바퀴를 다시 발명하는 대신 앱 작성에 집중할 수 있도록 합니다. 이 글에서는 Django를 사용하여 간단한 웹 애플리케이션을 빌드하는 방법을 안내합니다.

Django 시작하기

Django 웹 애플리케이션을 빌드하기 전에 Django를 설치해야 합니다. Python의 패키지 설치 프로그램인 pip를 사용하여 Django를 설치할 수 있습니다.

pip install django

Django가 설치되면 터미널이나 명령 프롬프트에서 다음 명령을 실행하여 새 Django 프로젝트를 만들 수 있습니다.

django-admin startproject myproject

이 명령은 시작하는 데 필요한 파일이 있는 myproject라는 새 디렉토리를 만듭니다. 이 디렉토리로 이동합니다.

cd myproject

Django 애플리케이션 만들기

Django 프로젝트 내부에서 특정 기능을 처리하는 개별 애플리케이션을 만들 수 있습니다. 예를 들어, 사용자 인증을 위한 앱, 블로그 게시물을 위한 앱 등이 있을 수 있습니다. 앱을 만들려면 다음 명령을 실행합니다.

python manage.py startapp myapp

이렇게 하면 models.py, views.py, tests.py 등의 파일을 포함하는 myapp이라는 새 디렉토리가 생성됩니다. 이 앱 내에서 모델, 뷰, 템플릿을 정의합니다.

모델 정의

Django 모델은 데이터 구조를 정의하고 Python 클래스로 표현됩니다. 앱 내의 models.py 파일에서 정의합니다.

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

모델을 정의한 후에는 해당 모델에 대한 데이터베이스 테이블을 만들어야 합니다. 다음 명령을 실행하여 마이그레이션을 적용합니다.

python manage.py makemigrations
python manage.py migrate

뷰 및 템플릿 생성

Django 뷰는 애플리케이션의 로직을 처리하고 모델과 상호 작용하여 템플릿에서 데이터를 렌더링합니다. 간단한 뷰는 views.py 파일에서 만들 수 있습니다.

from django.shortcuts import render
from .models import BlogPost

def home(request):
    posts = BlogPost.objects.all()
    return render(request, 'home.html', {'posts': posts})

위의 코드는 데이터베이스에서 모든 블로그 게시물을 가져와 home.html이라는 템플릿에 전달합니다. home.html 템플릿은 앱 내의 templates이라는 디렉토리에 저장됩니다.

<!DOCTYPE html>
<html>
<head>
    <title>Blog Home</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
    {% for post in posts %}
        <li>{{ post.title }} - {{ post.created_at }}</li>
    {% endfor %}
    </ul>
</body>
</html>

URL 구성

뷰를 URL에 연결하려면 URL 패턴을 정의해야 합니다. 앱 디렉토리에 urls.py라는 파일을 만들고 다음 코드를 추가합니다.

from django.urls import path
from . import views

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

그런 다음 이 앱의 URL 패턴을 메인 프로젝트 urls.py 파일에 포함시킵니다.

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

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

개발 서버 실행

모델, 뷰, 템플릿, URL을 설정한 후 Django 개발 서버를 실행하여 웹 애플리케이션이 어떻게 동작하는지 확인할 수 있습니다.

python manage.py runserver

웹 브라우저를 열고 http://127.0.0.1:8000/로 이동하여 Django 웹 애플리케이션이 실행 중인지 확인하세요.

결론

Django는 Python으로 강력하고 견고한 웹 애플리케이션을 간단하게 빌드할 수 있게 해줍니다. 이 가이드에서는 Django 프로젝트 설정, 앱 생성, 모델 정의, 뷰 및 템플릿 생성, URL 구성, 개발 서버 실행의 기본 사항을 다루었습니다. Django를 사용하면 확장 가능하고 유지 관리 가능한 웹 애플리케이션을 쉽게 빌드할 수 있습니다.