使用django怎么实现API接口的互相调用

  介绍

使用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接口的互相调用