ksino's diary

覚えたことを忘れないように、小さなことでも書いていく。

DjangoでREST API的なものをつくる

概要

  • Django REST frameworkは使わない
  • セキュリティは無視
  • POST
  • Jsonで数値を2つ送り、加算結果をJsonで返す

手順

プロジェクトを作る

$ django-admin startproject restproject

アプリを作る

$ python3 manage.py startapp calc

ソースを編集する

restproject/restproject/settings.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "calc.apps.CalcConfig",  # ★追加
]
restproject/restproject/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("calc.urls")),  # ★追加
]
restproject/calc/urls.py (新規作成ファイル)
from django.urls import path
from . import views

urlpatterns = [
    path("add/", views.add),
]
restproject/calc/views.py
from django.http.response import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json


@csrf_exempt
def add(request):
    if request.method == "GET":
        return JsonResponse({})

    req_json = json.loads(request.body)
    num1 = req_json["num1"]
    num2 = req_json["num2"]

    sum = num1 + num2
    res_json = {"sum": sum}
    return JsonResponse(res_json)

動作確認

Postmanで動作確認