1. Django란 무엇인가?

Django는 파이썬 기반의 고수준 웹 프레임워크로, 웹 개발의 복잡성을 줄이고 생산성을 높이기 위해 설계되었습니다. MTV(Model-Template-View) 아키텍처를 따르며, 강력한 ORM(Object-Relational Mapping), 자동 관리자 인터페이스, 그리고 보안 기능 등을 제공합니다.

2. Django의 주요 기능

  • ORM: 데이터베이스와의 상호 작용을 간편하게 해주는 ORM을 제공하여 SQL 문 작성 없이도 데이터베이스 작업을 할 수 있습니다.
  • 자동 관리자 인터페이스: 관리자 사이트를 자동으로 생성하여 데이터 관리를 쉽게 할 수 있습니다.
  • 보안: CSRF, XSS, SQL 인젝션 등의 공격으로부터 보호하는 다양한 보안 기능을 내장하고 있습니다.
  • 확장성: 플러그인과 모듈을 쉽게 추가할 수 있어 확장이 용이합니다.

3. Django 설치 및 설정

Django를 시작하기 위해 필요한 기본적인 설치 및 설정 과정을 알아보겠습니다.

설치
bash
pip install django
프로젝트 생성
bash
django-admin startproject myproject cd myproject python manage.py runserver

이제 브라우저에서 http://127.0.0.1:8000/로 접속하면 Django의 환영 화면을 볼 수 있습니다.

4. 간단한 블로그 예제

블로그 애플리케이션을 만들면서 Django의 기본 기능을 살펴보겠습니다.

앱 생성
bash
python 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)
마이그레이션 생성 및 적용
bash
python 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는 더 많은 기능과 확장성을 제공하므로, 공식 문서를 참조하여 더 깊이 있는 학습을 이어나가길 추천드립니다.