【问题标题】:Implement a REST API and web interface in Django在 Django 中实现 REST API 和 Web 界面
【发布时间】:2018-02-23 12:15:07
【问题描述】:

是否有正确/正确的方法来实现 RESTful API 和在 Django 中使用该 API 的用户界面?我有一个应用程序,我想为其创建一个 REST API,并且还有一个 Web 界面,但我不知道最好的方法。假设我想实现以下端点:/1.0/transactions。我可以为 API 创建一个视图

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,它返回 JSON 有效负载并使用有效负载中的数据呈现模板。
  2. 在呈现模板的视图中复制 API 中的代码。
  3. 在单个类中实现 API 和用户界面(我什至不知道这是否可能)。

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

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

【问题讨论】:

    标签: python django rest


    【解决方案1】:

    我强烈推荐Django REST Framework。需要做一些设置工作,但确实解决了设置 Django RESTful API 带来的很多问题。

    【讨论】:

      【解决方案2】:

      Tastypie 是编写 RESTfull API 的选项

      您可以查看详情here - Tastypie Documentation

      Django rest framework 是另一个最佳选择

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 2011-08-09
        • 2014-01-14
        • 2020-12-06
        • 2016-02-15
        • 1970-01-01
        相关资源
        最近更新 更多