비전문가를 위한 Django 셋업 가이드: ML 엔지니어의 도전기

3
post-thumbnail

Django 셋업 및 기본 API 구현 가이드

안녕하세요, 오늘은 장고(Django)를 이용해 프로젝트를 셋업하고 간단한 API를 만드는 과정을 함께 살펴보겠습니다. 장고는 파이썬 기반의 웹 프레임워크로, 빠르고 효율적인 웹 개발을 가능하게 합니다.

시작하기 전 준비 사항

장고란?

먼저, 간단히 장고에 대해 알아볼까요? 장고는 파이썬으로 작성된 고수준의 웹 프레임워크로, 신속한 개발과 깔끔한 디자인을 강조합니다. 장고는 자동으로 관리자 인터페이스를 생성해주는 등 많은 편리한 기능을 제공하며, ORM(Object-Relational Mapping)도 제공하여 데이터베이스 연동을 쉽게 할 수 있습니다.

셋업 과정

장고 프로젝트를 시작하는 기본 명령어부터 시작해보겠습니다.

django-admin startproject project_name
cd project_name
django-admin startapp app_name

이 명령어를 통해 기본 프로젝트와 앱 구조를 생성할 수 있습니다.

프로젝트 설정 파일

프로젝트의 설정 파일을 수정하여 필요한 구성요소를 추가합니다. 중요한 설정은 다음과 같습니다:

비밀 키와 DEBUG 모드 설정

비밀 키는 보안에 중요합니다. 배포 환경에서는 DEBUGFalse로 설정해야 합니다.

SECRET_KEY = 'your-secret-key'
DEBUG = True
ALLOWED_HOSTS = ['*']

설치된 앱

앱을 사용하기 위해 INSTALLED_APPS에 추가합니다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_name',
]

데이터베이스 설정

기본적으로 SQLite를 사용하지만, 필요에 따라 다른 DB를 사용할 수도 있습니다.

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

기본 API 구현하기

이제 기본적인 API를 만들어 보겠습니다. 예를 들어, 사용자 등록 API를 만든다고 가정해봅시다.

모델 정의

먼저, 사용자 모델을 정의합니다.

from django.db import models
import uuid

class User(models.Model):
    device_id = models.CharField(max_length=255, unique=True)
    uuid = models.UUIDField(default=uuid.uuid4, unique=True)

    def __str__(self):
        return self.device_id

뷰 작성

이제 데이터를 받아 처리할 뷰(view)를 작성합니다.

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
from .models import User

@csrf_exempt
def register_device(request):
    if request.method == "POST":
        try:
            data = json.loads(request.body)
            device_id = data.get("device_id")

            if not device_id:
                return JsonResponse({"error": "Device ID is required"}, status=400)

            device, created = User.objects.get_or_create(device_id=device_id, defaults={"uuid": uuid.uuid4()})
            return JsonResponse({"uuid": str(device.uuid)}, status=201 if created else 200)

        except json.JSONDecodeError:
            return JsonResponse({"error": "Invalid JSON"}, status=400)

    return JsonResponse({"error": "Invalid request method"}, status=405)

URL 설정

마지막으로, URL 패턴을 설정하여 API를 호출할 수 있게 합니다.

from django.urls import path
from .views import register_device

urlpatterns = [
    path('register/', register_device, name='register_device'),
]

결론

이제 장고 프로젝트를 셋업하고 기본적인 사용자 등록 API를 구현하는 방법을 알게 되셨습니다. 이 과정을 통해 장고의 강력한 기능을 활용하여 웹 애플리케이션을 효과적으로 개발할 수 있습니다. 다음에는 좀 더 복잡한 기능을 추가하여 프로젝트를 확장해볼까요? Happy Coding! 😊

🔥 해당 포스팅은 Dev.POST 도움을 받아 작성되었습니다.

profile
🔥 코드 과정 중 자연스레 쌓인 경험과 지식을 기술 블로그로 작성해줍니다.

0개의 댓글