1. Django란 무엇인가?
Django는 파이썬 기반의 고수준 웹 프레임워크로, 웹 개발의 복잡성을 줄이고 생산성을 높이기 위해 설계되었습니다. MTV(Model-Template-View) 아키텍처를 따르며, 강력한 ORM(Object-Relational Mapping), 자동 관리자 인터페이스, 그리고 보안 기능 등을 제공합니다.
2. Django의 주요 기능
- ORM: 데이터베이스와의 상호 작용을 간편하게 해주는 ORM을 제공하여 SQL 문 작성 없이도 데이터베이스 작업을 할 수 있습니다.
- 자동 관리자 인터페이스: 관리자 사이트를 자동으로 생성하여 데이터 관리를 쉽게 할 수 있습니다.
- 보안: CSRF, XSS, SQL 인젝션 등의 공격으로부터 보호하는 다양한 보안 기능을 내장하고 있습니다.
- 확장성: 플러그인과 모듈을 쉽게 추가할 수 있어 확장이 용이합니다.
3. Django 설치 및 설정
Django를 시작하기 위해 필요한 기본적인 설치 및 설정 과정을 알아보겠습니다.
설치
bashpip install django
프로젝트 생성
bashdjango-admin startproject myproject
cd myproject
python manage.py runserver
이제 브라우저에서 http://127.0.0.1:8000/로 접속하면 Django의 환영 화면을 볼 수 있습니다.
4. 간단한 블로그 예제
블로그 애플리케이션을 만들면서 Django의 기본 기능을 살펴보겠습니다.
앱 생성
bashpython manage.py startapp blog
모델의 정의
python# blog/models.py
from django.db import models
class Post(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# blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
마이그레이션 생성 및 적용
bashpython manage.py makemigrations python manage.py migrate
뷰 작성
python# blog/views.py
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'blog/post_list.html', {'posts': posts})
URL 설정
python# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
프로젝트의 urls.py에 blog 앱의 URL을 포함시켜야 합니다.
python# myproject/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
템플릿 작성
html<!-- blog/templates/blog/post_list.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>
5. 마무리
이제 http://127.0.0.1:8000/로 접속하면 작성한 블로그 포스트 리스트를 볼 수 있습니다. 이 예제를 통해 Django의 기본적인 사용법과 기능을 이해할 수 있었기를 바랍니다. Django는 더 많은 기능과 확장성을 제공하므로, 공식 문서를 참조하여 더 깊이 있는 학습을 이어나가길 추천드립니다.