画面がいらない場合、テンプレートを使わない場合はクラスベースでは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)