Python 고급

Python Django 웹 애플리케이션

PyExplorer 2024. 12. 29. 10:34
728x90

Python Django 웹 애플리케이션

Python은 웹 애플리케이션 개발을 위한 다양한 프레임워크를 제공하며, 그중 Django는 강력한 기능과 확장성을 갖춘 프레임워크로 유명합니다. 이번 포스팅에서는 Django를 이용해 간단한 웹 애플리케이션을 구축하는 방법을 단계별로 알아보겠습니다.


Django란?

Django는 Python 기반의 웹 프레임워크로, "The web framework for perfectionists with deadlines"라는 슬로건처럼 생산성과 효율성을 강조합니다. 주요 특징은 다음과 같습니다:

  • MTV 아키텍처: Model, Template, View로 구성된 구조.
  • 강력한 ORM: 데이터베이스 연동을 쉽게 할 수 있도록 지원.
  • 내장된 관리자 페이지: 빠르게 CRUD 인터페이스를 생성 가능.
  • 보안 기능 내장: CSRF, XSS 등 주요 보안 위협 방지.

프로젝트 환경 설정

Django 애플리케이션을 개발하기 위해서는 Python 환경이 필요합니다.

1. Python 설치

Python 3.8 이상 버전을 권장합니다. 아래 명령어로 Python이 설치되어 있는지 확인합니다.

python --version

2. Django 설치

가상 환경을 설정한 후 Django를 설치합니다.

# 가상 환경 생성
python -m venv myenv

# 가상 환경 활성화
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

# Django 설치
pip install django

설치 완료 후, Django 버전을 확인합니다.

django-admin --version

Django 프로젝트 생성

1. 프로젝트 시작

아래 명령어를 사용하여 새로운 Django 프로젝트를 생성합니다.

django-admin startproject myproject
cd myproject

생성된 디렉토리 구조는 다음과 같습니다:

myproject/
├── manage.py
├── myproject/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── asgi.py
│   └── wsgi.py

2. 서버 실행

개발 서버를 실행하여 기본 설정을 확인합니다.

python manage.py runserver

웹 브라우저에서 http://127.0.0.1:8000으로 접속하면 Django 환영 페이지를 볼 수 있습니다.


간단한 애플리케이션 생성

1. 애플리케이션 생성

Django에서 "애플리케이션"은 프로젝트 내에서 특정 기능을 담당하는 모듈입니다. blog라는 애플리케이션을 생성해보겠습니다.

python manage.py startapp blog

2. 애플리케이션 등록

settings.py 파일의 INSTALLED_APPS에 새 애플리케이션을 등록합니다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # 새로 추가한 애플리케이션
]

3. 모델 작성

blog/models.py에서 간단한 Post 모델을 작성합니다.

from django.db import models

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

    def __str__(self):
        return self.title

4. 데이터베이스 마이그레이션

# 마이그레이션 파일 생성
python manage.py makemigrations

# 데이터베이스에 반영
python manage.py migrate

5. 관리자 페이지에서 확인

admin.py에 Post 모델을 등록합니다.

from django.contrib import admin
from .models import Post

admin.site.register(Post)

관리자 계정을 생성합니다.

python manage.py createsuperuser

이후 http://127.0.0.1:8000/admin에서 관리자 페이지에 접속하여 Post를 추가하거나 확인할 수 있습니다.


간단한 View와 Template 생성

1. URL 설정

urls.py 파일에서 blog 애플리케이션의 URL을 연결합니다.

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

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

blog/urls.py 파일을 생성하고 기본 URL 설정을 추가합니다.

from django.urls import path
from . import views

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

2. View 작성

blog/views.py에 간단한 View를 작성합니다.

from django.shortcuts import render
from .models import Post

def index(request):
    posts = Post.objects.all()
    return render(request, 'blog/index.html', {'posts': posts})

3. Template 작성

blog/templates/blog/index.html 파일을 생성하고 내용을 작성합니다.

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

마무리

지금까지 Django를 이용해 간단한 웹 애플리케이션을 구축하는 방법을 알아보았습니다. Django의 강력한 기능을 활용하면 더욱 복잡하고 흥미로운 애플리케이션도 손쉽게 개발할 수 있습니다.

728x90