什么是"适当的"使用django REST框架的方法?

时间:2016-08-27 04:33:58

标签: django django-rest-framework

我完成了教程,我正在研究文档,所以我认为我对系统的工作方式有很好的理解,我可以想到几种不同的方法来使用它,但我很好奇&# 34;适当"使用它的方式,因为我的直觉可能会导致我错误的方式。

1)我应该设置API,然后让其他应用与之互动吗?

在这种情况下说它是一个博客,我会创建一个API应用程序/api来定义模型和api结构,它将负责创建,修改和销毁对象。

然后我会创建另一个应用程序,它将显示作者实际创建博客帖子的视图和表单,并将向{api}发送http个请求。此视图还负责让其他用户通过与API交互并检索帖子来查看博客帖子。

2)以某种方式在同一API应用中处理所有这些会更好吗?

这些方案是否应该在与REST框架viewsets等相同的视图中进行覆盖

感觉我能掌握它是如何工作的,但不是如何将所有部分组合在一起。感谢

1 个答案:

答案 0 :(得分:1)

  

我应该设置一个API,然后让我的其他应用与之交互吗?

您应该创建一个API应用程序,将所有api放入其中。

  

然后我会创建另一个应用程序,它将显示作者实际创建博客帖子的视图和表单,并将http请求发送到api。

这取决于,我曾经像你说的那样做,但现在我发现我实际上不必在views.py中编写任何代码 例如,您有一个博客项目。

  • 创建两个应用程序,一个是api,另一个是博客。
  • 在博客中设置您的模型。

    class Blog(models.Model):
        blog_title = models.CharField(max_length=30, blank=True)
        blog_content = models.CharField(max_length=140)
    
  • 在api应用程序中,使用django-rest-framework创建类BlogList(generics.ListCreateAPIView)和类BlogDetail(generics.RetrieveUpdateDestroyAPIView)或其他APIView和Serializers来处理您的博客的CRUD,这样您就可以必须在博客的views.py

  • 中编写任何代码
  • 我建议使用Ajax来处理表单而不是django内置表单api。就像CRUD博客一样,只需向api / blogs发送Ajax调用(你在APIView中处理它,使用django-rest-framework来处理哪个字段只读或任何其他属性。),注册或登录只需调用api /用户。 django form api如果你有很多表单很复杂,如果你创建一个移动应用程序或在其他平台上使用你就无法重用它

  

以某种方式在同一API应用程序中处理所有这些会更好吗?

是的,像我上面说的那样,维护代码很容易。