Django中API分析

Posted 开飞机的贝塔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中API分析相关的知识,希望对你有一定的参考价值。

下面,我将仔细分析一次请求的旅程:

web端发出一个请求报文,到获得服务器的响应报文结束。

1.打开浏览器,输入URL,进入API页面:

http://127.0.0.1:8000/api/salt

2.输入命令,按下确认按钮

根据URLconf,由上到下进行匹配,最终将请求报文(request对象)交给cmd方法

url(r\'^api/salt\',web_views.cmd,name=\'cmd\'),
这里说明一下:request对象有很多属性,其中用的最多的要数POST属性,他是类字典对象的一个实例对象

 这时cmd方法就是一个API,它接受并处理request对象并且返回response对象到html文件

def cmd(request):
	if request.POST:
		command = CommandForm(request.POST)
		a = print(request.POST)
		# host_ip = request.POST.get(\'host_ip\')
		func = request.POST.get(\'func\')
		# args = request.POST.get(\'args\')		
		# command.host_ip = host_ip
		# command.func = func
		# command.args = args
		# command.save()
		result = os.popen(func).read()
		return render(request,\'salt_api.html\',{\'result\':result,\'post\':request.POST,})
	else:
		command = CommandForm()
		return render(request,\'salt_api.html\',{\'form\':command})
response对象被送给了html文件

下面就是在html中如何展示response对象

<h3>执行结果:</h3><pre style="background-color: cornsilk; font-family: \'微软雅黑\';">{{result|safe}}</pre>
                       <h3>post对象:</h3> <pre>{{post}}</pre>

3.返回响应报文到客户端浏览器

下面使我们看到的浏览器结果

好了!以上就是一次请求开始,到获得结果的详细过程!

 

以上是关于Django中API分析的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

Django中API分析

Django中CBV和Restful API中的APIView源码分析

如何使用 Firebase 分析跟踪 android 片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

CMDB3 完善采集端代码(ssh方案的多线程采集), 异常处理, 服务端目录结构的设计(django的app), API数据分析比对入库