python - 在 Django 中实现 REST API 和 Web 界面

标签 python django rest

是否有正确/适当的方法来实现 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 种方法:

  1. 调用我的 API,该 API 返回 JSON 负载并使用负载中的数据呈现模板。
  2. 在呈现模板的 View 中复制 API 中的代码。
  3. 在单个类中实现 API 和用户界面(我不知道这是否可行)。

第一种方法需要我以某种方式在另一个 View 中调用我的 View (我知道你不应该这样做),第二种方法违反了 DRY 政策。假设,在此示例中没有那么多代码需要复制,但 POST 或 PATCH 可能会导致复制更多代码,因为我可能必须在将数据保存到数据库之前验证数据或执行其他过程。

是否有一个标准/适当/普遍同意的方法来解决这个问题?

最佳答案

我强烈推荐Django REST Framework 。设置需要做一些工作,但确实可以处理设置 Django RESTful API 时出现的很多问题。

关于python - 在 Django 中实现 REST API 和 Web 界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48940073/

相关文章:

Python nltk download 和 download_shell 在 punkt 尝试时都卡住(挂起)

python - 在 Python 中标记代码块

javascript - Django + Vue.js 问题

python - Django 'User' 对象没有属性 'Goals'

java - Java Jersey 中的地理位置

python - 使用 Xarray 和 Numpy 数组进行多处理

python - 模拟补丁功能

django - 如何在 Docker 中创建多容器 Web 应用程序

java - 如何创建带有可选参数的 REST API?

java - 如何将图像从服务器发送到客户端?