我目前有一个使用Django REST框架的完全可以工作的串行化器。我希望能够解析数据或请求可以在我的django应用程序中使用的数据。我一直在用
import requests
r = requests.get('django_api_url')
data = json.loads(r.text)我使用这个没有问题,但我正在尝试看看是否有更好/更快的方法。编辑:基本上是在寻找替代requests.get()的东西。
发布于 2018-01-19 05:46:40
由于您正在尝试访问后端的数据,因此您可以在一个干净的python文件中完成此操作,只需导入您的模型,也可以导入您的序列化程序,然后根据需要使用它们。例如:
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应用程序中一样运行这些文件。例如:
$ python manage.py shell
> from access_api_data.py import get_model1_instance
> get_model1_instance()
...如果你想在实际的web应用程序的后端调用你在这个文件中编写的函数,你可以将这些函数从文件中导入到你的视图中并调用它们,它们应该可以工作。
发布于 2018-01-18 05:04:31
尝试使用data = r.json()来消除对json.loads(r.text)的需求
请参阅response.json的文档
https://stackoverflow.com/questions/48309877
复制相似问题