使用django怎么实现API接口的互相调用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
, url =,“http://%s: % s/api-token-auth/? %, (ip,端口) ,query_args =, { “username"才能:,用户名, “password"才能:密码 ,}=,,resp  requests.post (url=url, data=https://www.yisu.com/zixun/query_args) 令牌=json.loads (resp.text)(“令牌”) 头={“授权”:“JWT”+ " " +牌}#拿到令牌,拼成头 post_url=" http://%s: % s/信息/message-level-two/? (ip、端口) data={ “应用程序”:应用, “url”:url, “message_id”: message_id, “头”:头, “标题”:标题、 “userprofile_id_list”: userprofile_id_list } 头=self.headers 请求。帖子(url=post_url, data=数据,标题=头)
获取当前请求的ip和端口
, host_ip,, host_port =, self.request.META.get (“HTTP_HOST") .split (& # 39;: & # 39;) [0], \ ,,,,,,,self.request.META.get (“HTTP_HOST") .split (& # 39;: & # 39;) [1]
常见的请求头如下:
CONTENT_LENGTH -请求主体的长度(如字符串)。
引用>
CONTENT_TYPE身体——请求的MIME类型。
HTTP_ACCEPT——可接受的响应内容类型。
HTTP_ACCEPT_ENCODING——接受编码响应。
HTTP_ACCEPT_LANGUAGE响应——可接受的语言。
HTTP_HOST——客户端发送的HTTP主机头。
HTTP_REFERER——引用页面,如果任何。
HTTP_USER_AGENT——客户机# 39;用户代理字符串。
QUERY_STRING——查询字符串,作为一个单独的字符串(未解析)。
REMOTE_ADDR——客户机的IP地址。
REMOTE_HOST——客户机的主机名。
REMOTE_USER -用户通过Web服务器身份验证,如果任何。
REQUEST_METHOD——一个字符串,如“GET"或“;POST"。
SERVER_NAME——服务器的主机名。
SERVER_PORT -服务器的端口(一个字符串)。获取请求头内容的用元
示例:
def 指数(请求):=,,ip  request.META.get (“REMOTE_ADDR") ,return HttpResponse(“你的ip地址是% s" % ip)http://10.254.30.27/1
self.kwargs [' pk # 39;] #可以拿到后边的1<强>补充知识:强> <强> django使用请求请求相关接口强>
1,如果是得到请求接口,并且需要带相关参数的话,可以借鉴下面的代码:
import 请求 , 得到django.http import  JsonResponse , def get_info(请求):=,url & # 39; http://www.baidu.com& # 39; ,params =, {& # 39; id # 39;,, 1,, & # 39;用户# 39;:,& # 39;林# 39;}=,,response  requests.get (url=url, params=参数) ,return JsonResponse (response.text,安全=False)这样将会返回一串json的字符串数据。
2,如果是帖子请求接口,并且需要带相关参数的话,可以借鉴下面的代码:
import 请求 , 得到json import 转储 得到django.http import  JsonResponse , def get_info(请求):=,url & # 39; http://www.baidu.com& # 39; ,data =, {& # 39; id # 39;,, 1,, & # 39;用户# 39;:,& # 39;林# 39;}=,,response  requests.post (url=url, data=https://www.yisu.com/zixun/dumps(数据)) 返回JsonResponse(响应。文本、安全=False)注:
(1),其中必须注意的为数据这个参数,必须要用转储(数据)转换一下,不然会报错,响应状态码为400,错误请求错误400,而使用python请求。发布函数。
(2),如果需要在帖子请求底下加相关请求头的话,可以借鉴下面的代码:
import 请求 , 得到json import 转储 得到django.http import  JsonResponse , def get_info(请求):=,url & # 39; http://www.baidu.com& # 39; ,data =, {& # 39; id # 39;,, 1,, & # 39;用户# 39;:,& # 39;林# 39;} ,headers =,{& # 39;内容类型# 39;:,& # 39;application/json # 39;,, & # 39;接受# 39;:,& # 39;*/* & # 39;}=,,response  requests.post (url=url, data=https://www.yisu.com/zixun/dumps(数据),标题=标题) 返回JsonResponse(响应。文本、安全=False)这里如果响应的状态码报415错误的话,即HTTP请求415错误——不支持的媒体类型(不支持的媒体类型),这就是内容类型可能写错了,就要注意一下了,因为通常接口会封装一些参数到请求头底下。
看完上述内容,你们掌握使用django怎么实现API接口的互相调用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
使用django怎么实现API接口的互相调用