PUROGU LADESU

ポエムがメインのブログです。

【Django】JSONを返すだけのクラスベースView

画面がいらない場合、テンプレートを使わない場合はクラスベースではViewを使用します。
HttpResponseを作ってcontentにセットして返せば良し。
他のメソッドが必要なら、def post, def headなどを定義すれば良し。

from django.views.generic import View

class JsonTestView(View):
    """テンプレート使わない"""
    def get(self, request, *args, **kwargs) -> HttpResponse:
        response = HttpResponse()
        response.content = self.create_json()
        response.headers["Content-Type"] = "text/json"
        return response
    
    def create_json(self):
        data = {
            "id": 1,
            "name": "ジャック",
            "age": 25,
        }
        return json.dumps(data)