안녕하세요, 오늘은 장고(Django)를 이용해 프로젝트를 셋업하고 간단한 API를 만드는 과정을 함께 살펴보겠습니다. 장고는 파이썬 기반의 웹 프레임워크로, 빠르고 효율적인 웹 개발을 가능하게 합니다.
먼저, 간단히 장고에 대해 알아볼까요? 장고는 파이썬으로 작성된 고수준의 웹 프레임워크로, 신속한 개발과 깔끔한 디자인을 강조합니다. 장고는 자동으로 관리자 인터페이스를 생성해주는 등 많은 편리한 기능을 제공하며, ORM(Object-Relational Mapping)도 제공하여 데이터베이스 연동을 쉽게 할 수 있습니다.
장고 프로젝트를 시작하는 기본 명령어부터 시작해보겠습니다.
django-admin startproject project_name
cd project_name
django-admin startapp app_name
이 명령어를 통해 기본 프로젝트와 앱 구조를 생성할 수 있습니다.
프로젝트의 설정 파일을 수정하여 필요한 구성요소를 추가합니다. 중요한 설정은 다음과 같습니다:
비밀 키는 보안에 중요합니다. 배포 환경에서는 DEBUG
를 False
로 설정해야 합니다.
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를 만든다고 가정해봅시다.
먼저, 사용자 모델을 정의합니다.
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 패턴을 설정하여 API를 호출할 수 있게 합니다.
from django.urls import path
from .views import register_device
urlpatterns = [
path('register/', register_device, name='register_device'),
]
이제 장고 프로젝트를 셋업하고 기본적인 사용자 등록 API를 구현하는 방법을 알게 되셨습니다. 이 과정을 통해 장고의 강력한 기능을 활용하여 웹 애플리케이션을 효과적으로 개발할 수 있습니다. 다음에는 좀 더 복잡한 기능을 추가하여 프로젝트를 확장해볼까요? Happy Coding! 😊
🔥 해당 포스팅은 Dev.POST 도움을 받아 작성되었습니다.