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)}
下面就是响应到的数据

3.可能出现的bug

此错误的意思是响应的对象不可序列化
所以我们一定要先把响应结果转为json,再去格式化响应内容,也就是
先转换为json格式

然后再格式化数据,

最后才发送出去数据

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
