Django로 간단한 ToDo API 만들기
요구 사항 설치
가상 환경을 만들고 Django를 설치합니다.
$ virtualenv venv # creates a virtual environment
$ source venv/bin/activate # activates the virtual environment
(venv)$ pip install Django
그게 지금 필요한 전부입니다.
프로젝트 생성
Django
startproject
명령을 사용하여 작업할 프로젝트를 만듭니다.$ django-admin startproject todoapi
이렇게 하면 생성된 파일이 있는
todoapi
디렉토리가 생성되어 시작합니다. 디렉토리는 다음과 같아야 합니다.manage.py
todoapi/
__init__.py
settings.py
urls.py
wsgi.py
데이터베이스 설정
작업을 간단하게 유지하기 위해 SQlite 데이터베이스를 사용하므로 Python과 함께 제공되므로 아무것도 설치할 필요가 없습니다. 또한
todoapi/settings.py
에 이미 설정되어 있습니다. 코드를 살펴보면 다음과 유사한 내용이 표시됩니다.# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
모델 생성
데이터베이스용 모델을 만들려면 먼저 todos "앱"을 만들어야 합니다. 여기에서 기능을 구현할 것입니다.
$ python manage.py startapp todos
그러면 다음 파일이 포함된
todos
디렉토리가 생성됩니다.migrations/
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
이 앱은
todoapi/settings.py
에 추가되어야 합니다.INSTALLED_APPS = [
...,
'todos'
]
이제 Django가 우리 앱에 대해 알았으니
models.py
파일을 열어 모델을 추가합니다. Todo
라는 하나의 모델만 생성합니다.from django.db import models
# Create your models here.
class Todo(models.Model):
todo = models.CharField(max_length=100, null=False,
help_text="This field is required")
done = models.BooleanField(default=False)
이 모델은 데이터를 저장하기 위해
todo
및 done
열이 있는 테이블을 생성합니다. todo
열은 실제 할 일을 저장하고 done
열은 상태(완료 여부)를 저장합니다. BooleanField
입니다. 즉, 완료되면 True
를 저장하고 완료되지 않으면 False
를 저장합니다. 이것이 기본값입니다.이제 우리가 해야 할 일은
makemigrations
를 실행하여 Django에 모델을 알리고 migrate
실제 마이그레이션을 수행하는 것입니다.$ python manage.py makemigrations todos
$ python manage.py migrate
끝점 만들기
지금은 두 개의 엔드포인트가 있습니다.
/todos
~ GET
모든 할일 목록/todos/<id>
to GET
id이를 테스트하기 위해
todos/view.py
파일에 두 개의 간단한 보기를 생성합니다.from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from .models import Todo
# Create your views here.
def todos(request):
todos_list = Todo.objects.all()
data = {
"todos": list(todos_list.values(
"todo", "done"
))
}
return JsonResponse(data)
def single_todo(request, pk):
todo = get_object_or_404(Todo, pk=pk)
data = {
"todo": todo.todo,
"done": todo.done
}
return JsonResponse(data)
urls.py
앱에서 todos
라는 새 파일을 만들고 다음 코드를 추가합니다.# todos/urls.py
from django.urls import path
from .views import todos, single_todo
urlpatterns = [
path("todos/", todos, name="todos"),
path("todos/<int:pk>", single_todo, name="single_todo")
]
todoapi/urls.py
로 이동하여 방금 만든 todos URL을 포함합니다.# todoapi/urls.py
from django.contrib import admin
from django.urls import path, include # add include here
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('todos.urls')) # add this
]
관리자 설정 및 엔드포인트 테스트
수퍼유저를 생성합니다.
$ python manage.py createsuperuser
다음으로 관리자 대시보드에서 모델에 액세스할 수 있도록
/todos/admin.py
파일에 모델을 등록합니다.from django.contrib import admin
from .models import Todo
# Register your models here.
admin.site.register(Todo)
그게 다야! 이제 서버를 실행하고
http://127.0.0.1:8000/admin
로 이동합니다. 할 일을 추가하려면 위의 수퍼유저에 대해 등록한 세부 정보로 로그인하십시오.끝점을 통해 나머지 클라이언트를 통해 생성된 todos를 검색할 수 있습니다.
http://127.0.0.1:8000/todos
http://127.0.0.1:8000/todos/<id>
Reference
이 문제에 관하여(Django로 간단한 ToDo API 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wangonya/creating-a-simple-todo-api-with-django-2i1c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)