是否有正确/适当的方法来实现 RESTful API 以及在 Django 中使用该 API 的用户界面?我有一个应用程序,我想为其创建 REST API,并且还有一个 Web 界面,但我不知道最好的方法。假设我想实现以下端点:/1.0/transactions
。我可以为 API 创建 View
from .models import Transactions
from django.core import serializers
from django.http import HttpResponse
from django.shortcuts import render
from django.views.generic.base import View
class TransactionApiView(View):
def get(self, request):
data = serializers.serialize('json', Transactions.objects.all())
return HttpResponse(data, content_type="application/json")
现在我想用我的交易实际渲染一个 HTML 页面。我认为有 3 种方法:
- 调用我的 API,该 API 返回 JSON 负载并使用负载中的数据呈现模板。
- 在呈现模板的 View 中复制 API 中的代码。
- 在单个类中实现 API 和用户界面(我不知道这是否可行)。
第一种方法需要我以某种方式在另一个 View 中调用我的 View (我知道你不应该这样做),第二种方法违反了 DRY 政策。假设,在此示例中没有那么多代码需要复制,但 POST 或 PATCH 可能会导致复制更多代码,因为我可能必须在将数据保存到数据库之前验证数据或执行其他过程。
是否有一个标准/适当/普遍同意的方法来解决这个问题?
最佳答案
我强烈推荐Django REST Framework 。设置需要做一些工作,但确实可以处理设置 Django RESTful API 时出现的很多问题。
关于python - 在 Django 中实现 REST API 和 Web 界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48940073/