我目前使用Django REST Framework有一个完全正常工作的Serializers。 我希望能够解析数据或请求可以在我的django应用程序中使用的数据。 我一直在使用
import requests
r = requests.get('django_api_url')
data = json.loads(r.text)
我使用它没有问题,但我想看看是否有更好/更快的方式。 编辑: 基本上寻找替换requests.get()
的东西答案 0 :(得分:1)
由于您正在尝试访问后端中的数据,因此只需导入模型并导入序列化程序然后根据需要使用它们,即可在干净的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应用程序中调用您在后端的文件中编写的函数,可以将文件中的函数导入到视图中并调用它们,它们应该可以正常工作。
答案 1 :(得分:0)
尝试data = r.json()
删除对json.loads(r.text)