如何在 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 中,如何单击按钮来调用视图然后重新加载页面

如何获取Django view.py来请求选定的帖子信息,如主键?

在 Django 的 view.py 中创建一个新表

将表格数据从模板发送到 django 中的 view.py

view.py 中的 Django Form If 条件与 2 个实例