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中CBV和Restful API中的APIView源码分析
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
CMDB3 完善采集端代码(ssh方案的多线程采集), 异常处理, 服务端目录结构的设计(django的app), API数据分析比对入库