【问题标题】:Using requests module to consume API?使用请求模块来使用 API?
【发布时间】:2020-03-04 02:44:12
【问题描述】:

我创建了一个带有一些端点的 API,例如:

www.domain.com/api/items
www.domain.com/api/items/1
www.domain.com/api/items/available

现在我希望能够从我的视图中执行相同的查询来填充我的 HTML。 我一直在阅读您可以使用:

requests.get('localhost/api/items')

但我想知道是否有一种方法可以在内部进行,例如直接调用视图集或类似的方法。

谢谢!

【问题讨论】:

标签: python django python-3.x


【解决方案1】:

使用Django testing tools 很简单。

>>> from django.test import Client
>>> c = Client()
>>> response = c.post('/api/items')
>>> response.status_code
200
>>> response.content
<response html here>

请注意,在使用测试客户端时实际上不会发送任何 HTTP 请求。如 Django 文档中所述:

测试客户端是一个 Python 类,充当虚拟 Web 浏览器,允许您测试视图并以编程方式与 Django 驱动的应用程序交互。

您可以在 Django 中使用这些工具准备单元测试,使用 essentially the same sematics 作为标准 unittest 模块。

【讨论】:

    【解决方案2】:

    出于目的,为什么需要调用此内部视图?

    可能你想运行(重用)已经存在的代码

    一般来说,最好将视图代码移到某个管理器的函数中,然后在两个视图中运行新函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 2016-12-15
      • 2016-12-31
      • 2018-02-24
      相关资源
      最近更新 更多