파이썬 Django 설치부터 첫 API 만들기

파이썬 Django는 웹 개발을 위한 강력한 프레임워크로, 쉽게 API를 구축할 수 있는 기능을 제공합니다. 본 글에서는 Django 설치부터 간단한 API 제작까지의 과정을 자세히 살펴보겠습니다.

Django 설치하기

Django를 사용하기 위해서는 먼저 개발 환경을 준비해야 합니다. 가상환경을 설정하는 것이 가장 좋은 방법입니다. 커맨드 라인에서 다음과 같은 명령어를 입력하여 가상환경을 생성하고 활성화합니다:

python -m venv myenv
source myenv/bin/activate # Unix/Linux
myenv\Scripts\activate # Windows

가상환경 활성화 후, Django를 설치하기 위해 다음 명령어를 입력합니다:

pip install django

이제 Django가 성공적으로 설치되었습니다. 버전을 확인해보려면 다음 명령어를 사용하세요:

django-admin --version

Django 프로젝트 및 앱 생성

프로젝트를 시작하기에 앞서, 새로운 Django 프로젝트를 생성합니다. 프로젝트를 생성할 디렉토리로 이동한 후, 다음 명령을 입력하세요:

django-admin startproject myproject
cd myproject

이제 프로젝트가 생성되었습니다. 그 다음, API를 위한 앱을 생성해보겠습니다:

python manage.py startapp myapp

앱이 생성되면, settings.py 파일을 열어 INSTALLED_APPS 리스트에 방금 생성한 앱을 추가해야 합니다:

INSTALLED_APPS = [
  ...
  'myapp',
]

데이터베이스 설정 및 마이그레이션

이제 데이터베이스를 설정하고 마이그레이션을 수행합니다. Django는 기본적으로 SQLite를 사용하지만, 다른 데이터베이스를 사용할 수도 있습니다. 데이터베이스 설정 후 아래 명령어로 마이그레이션을 진행합니다:

python manage.py makemigrations
python manage.py migrate

이렇게 하면 Django의 기본 데이터베이스 테이블이 생성되고 사용할 준비가 완료됩니다.

모델(Model) 정의하기

이제 간단한 Todo 리스트를 위한 모델을 정의해보겠습니다. models.py 파일에 아래와 같은 코드를 작성합니다:

from django.db import models
from django.contrib.auth.models import User
class TodoItem(models.Model):
  user = models.ForeignKey(User, on_delete=models.CASCADE)
  title = models.CharField(max_length=100)
  content = models.TextField(blank=True)
  created_at = models.DateTimeField(auto_now_add=True)
  def __str__(self):
    return self.title

위 코드는 각 투두 아이템을 정의하는 모델입니다. 사용자, 제목, 내용, 생성 시간을 포함하고 있습니다. 모델을 정의 후 다시 마이그레이션을 진행해야 합니다:

python manage.py makemigrations myapp
python manage.py migrate

API 엔드포인트 생성하기

URL 매핑 설정

이제 API 요청을 처리하기 위한 URL 매핑을 설정합니다. urls.py 파일을 열고 다음과 같이 수정합니다:

from django.urls import path
from . import views
urlpatterns = [
  path('todo/', views.TodoListView.as_view(), name='todolist'),
]

뷰(View) 작성

이제 API 요청을 처리할 뷰를 작성해 보겠습니다. views.py에 아래 코드를 추가합니다:

from django.http import JsonResponse
from .models import TodoItem
from django.views import View
class TodoListView(View):
  def get(self, request):
    todos = TodoItem.objects.all().values()
    return JsonResponse(list(todos), safe=False)
  def post(self, request):
    # POST 요청을 처리하는 코드 추가 예정
    pass

위 코드에서 get 메소드는 모든 투두 아이템을 JSON 형식으로 반환합니다. post 메소드도 준비되어 있지만 내용은 아직 작성되지 않았습니다. 나중에 클라이언트가 투두 아이템을 추가할 수 있도록 기능을 추가할 수 있습니다.

서버 실행 및 테스트

이제 모든 설정이 완료되었으니 서버를 실행하여 API를 테스트해보겠습니다:

python manage.py runserver

서버가 실행되면 브라우저를 통해 http://127.0.0.1:8000/todo/ 주소로 접속해 보세요. JSON 형식으로 투두 아이템 목록이 반환되는 것을 확인할 수 있습니다.

마무리

이번 포스팅을 통해 Django를 활용한 간단한 API 개발 과정을 살펴보았습니다. Django의 구성을 잘 이해하고 활용하면 더욱 복잡하고 다양한 기능을 갖춘 웹 애플리케이션을 개발할 수 있습니다. 나중에 더 발전된 기능을 추가하여 사용할 수 있도록 다양한 방법을 모색해보세요. 더 나아가 Django Rest Framework 같은 패키지를 활용하면 더욱 간편하게 RESTful API를 구축할 수 있습니다.

자주 묻는 질문과 답변

Django API를 만들기 위해 필요한 초기 설정은 무엇인가요?

Django API를 개발하려면 가상환경을 구성하고 Django를 설치하는 것이 우선입니다. 그런 다음 새로운 프로젝트와 앱을 생성하여 작업을 시작할 수 있습니다.

API 엔드포인트를 생성하려면 어떤 과정을 거쳐야 하나요?

API 엔드포인트를 만들기 위해서는 URL 매핑을 설정하고, 요청을 처리할 뷰를 작성해야 합니다. 이로써 클라이언트가 특정 URL에 접근할 때 API 응답을 받을 수 있습니다.

Django에서 데이터베이스 마이그레이션은 어떻게 하나요?

Django에서 데이터베이스 마이그레이션은 ‘makemigrations’와 ‘migrate’ 명령어를 통해 수행할 수 있습니다. 이를 통해 모델에서 정의한 구조를 데이터베이스에 반영할 수 있습니다.

답글 남기기