IT/Python

[Python] Django 웹 프레임워크 기초

멋진 선배 2025. 1. 13. 20:16
반응형

Django는 파이썬 기반의 강력한 웹 프레임워크 입니다. 빠른 개발과 깔끔한 디자인을 동시에 실현할 수 있어 많은 개발자들이 선호합니다. 

Django 설치 및 프로젝트 시작

먼저 Django를 설치하고 프로젝트를 시작해 봅시다.

pip install django
django-admin startproject myproject
cd myproject
python manage.py runserver

Django의 기본 구조

Django는 MVT(Model-View-Template) 패턴을 따릅니다.

  • Model : 데이터베이스 구조 정의
  • View : 비지니스 로직 정리
  • Template : 사용자에게 보여지는 화면

앱 생성하기

python manage.py startapp myapp

Models 작성하기

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 manage.py makemigrations
python manage.py migrate

View 만들기

veiw.py에서 페이지의 로직을 작성합니다.

from django.shortcuts import render
from .models import Post

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

URL 설정하기

urls.py에서 URL 패턴을 정의 합니다.

from django.urls import path
from . import views

urlpatterns = [
    path('posts/', views.post_list, name='post_list'),
]

Templates 작성하기

HTML 템플릿을 만들어 데이터를 표시합니다.

{% extends 'base.html' %}

{% block content %}
    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.content }}</p>
    {% endfor %}
{% endblock %}

Forms 활용하기

forms.py를 생성하여 폼을 정의 합니다.

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'content']

Admin 인터페이스 설정

admin.py에서 관리자 페이지를 설정 합니다.

from django.contrib import admin
from .models import Post

admin.site.register(Post)

정적파일 관리

static 폴더에 CSS, JavaScript, 이미지 파일을 저장 합니다.

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]

보안 설정

settings.py에서 중요한 보안 설정을 관리 합니다.

SECRET_KEY = '안전한_키_값'
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com']

데이터 베이스 연동

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

실전 활용 팁

  1. 가상환경 사용하기
  2. requirements.txt 관리하기
  3. 디버그 모드 활용하기
  4. 테스트 코드 작성하기

마무리

Django는 강력하면서도 배우기 쉬운 웹 프레임워크 입니다. 이 기초를 바탕으로 실제 프로젝트를 진행하면서 더 깊이 학습하는 시간을 가져보세요. 

추천 학습 순서

  1. 기본 개념 이해하기
  2. 간단한 블로그 만들기
  3. 사용자 인증 추가하기
  4. REST API 만들기
  5. 배포 방법 학습하기

 

 

반응형