오늘의 TIL (Today I Learned)
Django 구현 흐름
Django를 활용하여 웹 애플리케이션을 구축하는 기본적인 흐름을 정리했다.
1️⃣ 가상환경 및 Django 프로젝트 생성
python -m venv venv # 가상환경 생성
source venv/bin/activate # 가상환경 활성화 (Windows: venv\Scripts\activate)
pip install django # Django 설치
django-admin startproject project # Django 프로젝트 생성
2️⃣ Django 앱 생성 (startapp post)
python manage.py startapp post # 'post' 앱 생성
3️⃣ Django 프로젝트에 앱 등록
- settings.py 파일에서 INSTALLED_APPS에 post와 rest_framework 추가
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', ... 'rest_framework', 'post', ]
4️⃣ 데이터 모델 정의 및 마이그레이션
- post/models.py에서 DB 모델 생성
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)
- 마이그레이션 실행
python manage.py makemigrations post
python manage.py migrate
5️⃣ URL 설정 (project/urls.py → post/urls.py)
- project/urls.py
from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('post/', include('post.urls')), # post 앱의 URL을 포함 ] - post/urls.py
from django.urls import path from .views import PostList urlpatterns = [ path('list/', PostList.as_view()), # PostList 뷰 연결 ]
6️⃣ JSON 직렬화 (serializers.py)
- post/serializers.py
from rest_framework import serializers from .models import Post class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = '__all__'
7️⃣ CRUD API 뷰 구현 (views.py)
- post/views.py
from rest_framework import generics from .models import Post from .serializers import PostSerializer class PostList(generics.ListCreateAPIView): queryset = Post.objects.all() serializer_class = PostSerializer - ListCreateAPIView를 사용하여 GET(조회) 및 POST(생성) 기능 제공.
8️⃣ 서버 실행 및 API 테스트
python manage.py runserver
- Postman을 활용하여 http://127.0.0.1:8000/post/list/로 API 테스트 진행.
Django 요청 흐름 (사용자 관점)
💡 GET /posts/ 요청이 들어왔을 때, Django의 내부 흐름을 정리했다.
1️⃣ 사용자 요청 발생 (GET /posts/)
- 사용자가 http://127.0.0.1:8000/post/list/ 요청을 보냄.
2️⃣ Django가 urls.py에서 매핑 확인
- project/urls.py → post/urls.py
- post/urls.py에서 views.PostList로 연결됨.
3️⃣ views.py에서 요청 처리
- PostList 클래스에서 Post.objects.all()을 통해 DB에서 데이터 조회.
4️⃣ serializers.py를 통해 JSON 변환
- 데이터가 JSON 형식으로 변환되어 반환됨.
5️⃣ 최종 Response 반환
- JSON 데이터를 클라이언트(브라우저 또는 Postman)로 응답.
오늘의 배운 점 & 느낀 점
Django 프로젝트의 기본적인 구조와 흐름을 다시 한 번 정리했다.
urls.py → views.py → models.py → serializers.py → Response의 순서로 진행됨을 이해했다.
RESTful API를 만들기 위해 ListCreateAPIView를 사용하여 GET & POST 요청을 쉽게 처리할 수 있음을 알게 되었다.
Postman을 활용한 API 테스트 과정이 중요하며, 실제 서버와의 연동을 통해 제대로 동작하는지 확인하는 것이 필요함을 깨달았다.
'내일배움캠프 TIL' 카테고리의 다른 글
| 2025.02.13TIL: Django - Authentication (0) | 2025.02.13 |
|---|---|
| 2025.02.12TIL : LangChain (0) | 2025.02.12 |
| 2025.02.10TIL : Django Admin (0) | 2025.02.10 |
| 2025.02.07TIL: GIT협업 WORK FLOW (1) | 2025.02.07 |
| 2025.02.06 TIL : 가상환경 설정 문제 (0) | 2025.02.06 |