django

Django 기본 문법 총정리: 초보자를 위한 핵심 개념과 실전 예제

bitandwon 2026. 6. 29. 13:16

Django란?

Django는 Python 기반의 대표적인 웹 프레임워크입니다. 로그인, 관리자 페이지, ORM, URL 라우팅 등 웹 서비스 개발에 필요한 기능을 기본으로 제공하기 때문에 생산성이 매우 높습니다.

특히 MTV(Model-Template-View) 구조를 사용하여 유지보수가 쉽고 대규모 프로젝트에서도 많이 활용됩니다.

Django 프로젝트 생성

먼저 Django를 설치합니다.

pip install django

프로젝트를 생성합니다.

django-admin startproject config

프로젝트 폴더로 이동한 후 개발 서버를 실행합니다.

cd config
python manage.py runserver

 

명령어 설명
startproject 프로젝트 생성
runserver 개발 서버 실행
startapp 앱 생성

Django 프로젝트 구조

config/
│
├── config/
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
│
├── manage.py
└── app/
파일 역할
settings.py 프로젝트 설정
urls.py URL 관리
manage.py 관리 명령 실행

앱(App) 생성

python manage.py startapp blog

생성한 앱을 settings.py에 등록합니다.

INSTALLED_APPS = [
    ...
    'blog',
]

URL 기본 문법

urls.py에서 URL과 View를 연결합니다.

from django.urls import path
from . import views

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

URL 요청이 들어오면 연결된 View 함수가 실행됩니다.

View 기본 문법

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello Django!")

브라우저에서 접속하면 "Hello Django!"가 출력됩니다.

구성 요소 역할
request 클라이언트 요청 정보
HttpResponse 응답 반환

Template 사용하기

HTML 파일을 사용하면 동적인 화면을 쉽게 만들 수 있습니다.

from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

templates/index.html

<h1>Hello Django</h1>

Model 기본 문법

데이터베이스 테이블을 Python 클래스로 정의합니다.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

모델 변경 후에는 마이그레이션을 수행해야 합니다.

python manage.py makemigrations
python manage.py migrate

ORM 사용하기

SQL을 직접 작성하지 않고 데이터를 조회할 수 있습니다.

Post.objects.create(
    title="첫 글",
    content="안녕하세요."
)

Post.objects.all()

Post.objects.filter(title="첫 글")
메서드 설명
create() 데이터 생성
all() 전체 조회
filter() 조건 조회
get() 단일 조회

관리자(Admin) 페이지

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

python manage.py createsuperuser

관리자 페이지에서 모델을 관리하려면 admin.py에 등록합니다.

from django.contrib import admin
from .models import Post

admin.site.register(Post)

실무에서 많이 사용하는 구조

  • 프로젝트와 앱을 명확하게 분리합니다.
  • Template, Static, Media 디렉터리를 구분합니다.
  • 환경 변수는 별도 파일로 관리합니다.
  • requirements.txt를 함께 관리합니다.
  • Git 저장소에는 venv/와 __pycache__/를 포함하지 않습니다.

초보자가 자주 하는 실수

  • 앱을 생성한 뒤 INSTALLED_APPS에 등록하지 않음
  • 마이그레이션을 수행하지 않음
  • URL과 View를 연결하지 않음
  • Template 경로를 잘못 설정함
  • 가상 환경을 활성화하지 않고 패키지를 설치함

Django 개발 팁

항목 추천 방법
IDE VS Code + Python 확장
버전 관리 Git + GitHub
패키지 관리 requirements.txt 사용
가상 환경 venv 사용
실무 팁: 프로젝트를 시작할 때는 venv를 생성하고, 필요한 패키지를 설치한 뒤 requirements.txt를 생성하는 습관을 들이면 협업과 배포가 훨씬 수월합니다.

정리

Django는 URL, View, Template, Model, ORM의 흐름만 이해해도 기본적인 웹 애플리케이션을 만들 수 있습니다. 이후에는 CRUD, 인증(Authentication), 클래스 기반 뷰(CBV), REST API, 배포 등의 주제를 학습하면 실무 역량을 빠르게 높일 수 있습니다.

FAQ

Q1. Django와 Flask의 차이는 무엇인가요?

Django는 다양한 기능이 기본 제공되는 풀스택 프레임워크이며, Flask는 필요한 기능을 직접 선택해 구성하는 경량 프레임워크입니다.

Q2. Django에서 ORM을 사용하는 이유는 무엇인가요?

SQL을 직접 작성하지 않고도 데이터베이스를 객체 형태로 다룰 수 있어 생산성과 유지보수성이 향상됩니다.

Q3. Model을 수정하면 바로 데이터베이스가 변경되나요?

아니요. makemigrations와 migrate 명령을 실행해야 변경 사항이 데이터베이스에 반영됩니다.

Q4. 하나의 프로젝트에 여러 앱을 만들 수 있나요?

가능합니다. 기능별로 앱을 분리하는 것이 Django의 일반적인 개발 방식입니다.

Q5. Django를 배우기 전에 Python을 알아야 하나요?

기본 문법(변수, 함수, 클래스)을 이해하고 있다면 Django 학습을 훨씬 수월하게 진행할 수 있습니다.

'django' 카테고리의 다른 글

Django 프로젝트 구조  (0) 2026.07.10
Django Model  (0) 2026.06.29
Django ORM  (0) 2026.06.29
Django CRUD  (0) 2026.06.29
django 가상환경 세팅 및 프로젝트 생성  (1) 2025.11.25