zoukankan      html  css  js  c++  java
  • 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.返回响应报文到客户端浏览器

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

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

     

  • 相关阅读:
    shell 工具函数
    javascript 笔记
    vmware 全屏状态下与宿主机无缝切换
    shell 重定向
    PHP 执行服务器命令的类
    PHP 生成 Html
    PHP 打印输出调试类
    PHP 自动加载类
    getopt 示例
    linux alias 命令别名并输出其原始命令
  • 原文地址:https://www.cnblogs.com/leomei91/p/7349284.html
Copyright © 2011-2022 走看看