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를 사용하면 확장 가능하고 유지 관리 가능한 웹 애플리케이션을 쉽게 빌드할 수 있습니다.