首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django中有没有其他方式来请求JSON REST API?

在django中有没有其他方式来请求JSON REST API?
EN

Stack Overflow用户
提问于 2018-01-18 04:58:48
回答 2查看 115关注 0票数 0

我目前有一个使用Django REST框架的完全可以工作的串行化器。我希望能够解析数据或请求可以在我的django应用程序中使用的数据。我一直在用

代码语言:javascript
复制
import requests
r = requests.get('django_api_url')
data = json.loads(r.text)

我使用这个没有问题,但我正在尝试看看是否有更好/更快的方法。编辑:基本上是在寻找替代requests.get()的东西。

EN

回答 2

Stack Overflow用户

发布于 2018-01-19 05:46:40

由于您正在尝试访问后端的数据,因此您可以在一个干净的python文件中完成此操作,只需导入您的模型,也可以导入您的序列化程序,然后根据需要使用它们。例如:

代码语言:javascript
复制
from api_app.models import Model1, Model2
from api_app.serializers import ModelSerializer1, ModelSerializer2

def get_model1_instance():
    m1 = Model1.get(pk=1)
    m1_data = ModelSerializer1(m1).data
    print(m1_data)

需要理解的重要一点是,您不能只运行这个python文件。因为它使用django库和您的django项目代码,所以它必须在django的上下文中运行。方法是使用命令python manage.py shell打开django shell,从文件中导入要运行的函数,然后调用这些函数。当您在django shell中导入并运行代码时,它会像在django应用程序中一样运行这些文件。例如:

代码语言:javascript
复制
$ python manage.py shell
> from access_api_data.py import get_model1_instance
> get_model1_instance()
...

如果你想在实际的web应用程序的后端调用你在这个文件中编写的函数,你可以将这些函数从文件中导入到你的视图中并调用它们,它们应该可以工作。

票数 1
EN

Stack Overflow用户

发布于 2018-01-18 05:04:31

尝试使用data = r.json()来消除对json.loads(r.text)的需求

请参阅response.json的文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48309877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档