Django请求第三方api接口

文章目录

  • 前言
    • 1.创建view视图
    • 2.然后编写url用来前后端交互数据
    • 3.可能出现的bug


前言

我们经常在前端写一些ajax请求但是一直出现跨域的问题,所以我们就把目标放到了后端,可是发现根本不知道怎么去使用第三方接口


提示:以下是本篇文章正文内容,我们就用名人名言的api作为案例

1.创建view视图

这一步是为了在后端将数据请求到,我们直接上代码

# 名人名言接口
def famous(request):
    url = 'https://v1.alapi.cn/api/mingyan'  #api链接
    '''
        我用的这个接口没有什么apikey或者参数
        如果有的话直接写上参数,类似于这样
        apikey = 'chgaxvsf88f3858a15fa4426f4cbdd4d2a02b92ee0747f3'
        area = "人生"
        areaID = "45"
        data = {
            "apiKey":apikey,
            "area":area,
            "areaID":areaID,
            }
        将数据封装成人家接口定义的格式,请求数据改成以下样子
        wb_data = requests.get(url,apikey,data)
    '''
    wb_data = requests.get(url)  #引入requests库来请求数据
    result = wb_data.json()   #将请求的数据转换为json格式
    return JsonResponse(json.dumps(result), safe=False)   #用json响应出去,顺便格式化数据

2.然后编写url用来前后端交互数据

url:

    path('famous/', views.famous, name='famous')

然后在你需要用到的页面,用ajax请求数据(我这里是jq)

 $.ajax({
    url:"{% url 'famous' %} ",
    type:"get",
    contentType: "application/json;charset=UTF-8",
    dataType:"json",
    success:function (data) {
      let famous_data = jQuery.parseJSON(data);
      $(".one-poem").html(famous_data.data.content)
    }

下面就是响应到的数据
Django请求第三方api接口_第1张图片

3.可能出现的bug

在这里插入图片描述
此错误的意思是响应的对象不可序列化
所以我们一定要先把响应结果转为json,再去格式化响应内容,也就是
先转换为json格式
在这里插入图片描述
然后再格式化数据,
在这里插入图片描述
最后才发送出去数据
在这里插入图片描述

你可能感兴趣的:(django,ajax,django)