如何在 django view.py 中调用远程 api?
Posted
技术标签:
【中文标题】如何在 django view.py 中调用远程 api?【英文标题】:How can I invoke remote api in django view.py? 【发布时间】:2020-01-25 05:06:59 【问题描述】:我有一个使用 ASP.Net 编写的 api 的 Django 应用程序。我可以从模板(html页面)调用api。有没有办法从views.py调用api?这个我试过了。
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
# Create your views here.
def categorydashboard(request):
r = request.get('xxx.xxx.xx.xxx:xxxx/Category/getSubCategoryNamev2', d=request.GET)
return render (request,'categoryDashboard.html',)
API 示例数据(这是一个 GET 请求)
[
"category_id": 2,
"category_name": "Hyper Mechanical",
"Image_Path": null,
"subcategory": [
"category_id": 0,
"category_name": null,
"product_subcategory_id": 37,
"product_subcategory_name": "Lift",
"schema_id": null,
"Image_path": ""
]
]
服务器运行良好,但是当我调用“categorydashboard”时,查看它的抛出错误 AttributeError: 'WSGIRequest' 对象没有属性 'get' 我是 Django 新手,如果我弄错了,我很抱歉
【问题讨论】:
检查***.com/questions/11663945/…,***.com/questions/30259452/… 【参考方案1】:最好使用像requests
这样的外部库。例如:
import requests
def categorydashboard(request):
r = requests.get('xxx.xxx.xx.xxx:xxxx/Category/getSubCategoryNamev2', params=request.GET)
return render (request,'categoryDashboard.html', context='subcategory':r.json())
【讨论】:
我得到 上下文必须是字典而不是列表。以上是关于如何在 django view.py 中调用远程 api?的主要内容,如果未能解决你的问题,请参考以下文章
单击表单复选框并传递复选框布尔值时如何在Django中刷新view.py?
在 Django 中,如何单击按钮来调用视图然后重新加载页面