首页 > 解决方案 > 如何在 django view.py 中调用远程 api?

问题描述

我有一个使用 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' object has no attribute 'get' 我是 Django 的新手,所以如果我弄错了,我很抱歉

标签: pythondjangoapi

解决方案


最好使用外部库,例如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()})

推荐阅读