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의 강력한 기능을 활용하면 더욱 복잡하고 흥미로운 애플리케이션도 손쉽게 개발할 수 있습니다.
'Python 고급' 카테고리의 다른 글
Python 웹 스크래핑을 위한 BeautifulSoup와 Scrapy (0) | 2025.01.01 |
---|---|
Python FastAPI로 REST API 개발하기 (0) | 2024.12.30 |
Python Flask 웹 서버 구현 (0) | 2024.12.28 |
Python statsmodels를 이용한 통계 분석 (0) | 2024.12.27 |
Python Scikit-learn을 활용한 머신러닝 기초 (0) | 2024.12.26 |