首页 > 代码库 > Django中API分析

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分析