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分析的更多相关文章
- Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API的3环部分 一.R3环API分析的重 ...
- 关于Django中的数据库操作API之distinct去重的一个误传
转载自http://www.360doc.com/content/18/0731/18/58287567_774731201.shtml django提供的数据库操作API中的distinct()函数 ...
- Netty源码分析之ByteBuf(一)—ByteBuf中API及类型概述
ByteBuf是Netty中主要的数据容器与操作工具,也是Netty内存管理优化的具体实现,本章我们先从整体上对ByteBuf进行一个概述: AbstractByteBuf是整个ByteBuf的框架类 ...
- Django QuerySet API文档
在查询时发生了什么(When QuerySets are evaluated) QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作.只要你查询的时候才真正的操作数据 ...
- django源码分析——处理请求到wsgi及视图view
本文环境python3.5.2,django1.10.x系列 根据前上一篇runserver的博文,已经分析了本地调试服务器的大致流程,现在我们来分析一下当runserver运行起来后,django框 ...
- celery介绍、架构、快速使用、包结构,celery执行异步、延迟、定时任务,django中使用celery,定时更新首页轮播图效果实现,数据加入redis缓存的坑及解决
今日内容概要 celery介绍,架构 celery 快速使用 celery包结构 celery执行异步任务 celery执行延迟任务 celery执行定时任务 django中使用celery 定时更新 ...
- [Python][flask][flask-wtf]关于flask-wtf中API使用实例教程
简介:简单的集成flask,WTForms,包括跨站请求伪造(CSRF),文件上传和验证码. 一.安装(Install) 此文仍然是Windows操作系统下的教程,但是和linux操作系统下的运行环境 ...
- Django中的Model继承
Django 中的 model 继承和 Python 中的类继承非常相似,只不过你要选择具体的实现方式:让父 model 拥有独立的数据库:还是让父 model 只包含基本的公共信息,而这些信息只能由 ...
- Django中生成PDF(一)
Django中生成PDF(一) 需求描述: 某网站与其用户达成一致的协议,每份协议中都有用户相关的独特信息,且还需要生成PDF并存档.PDF文件中需要有企业LOGO.文字描述等信息.其展现形式 ...
随机推荐
- 零基础带你看Spring源码——IOC控制反转
本章开始来学习下Spring的源码,看看Spring框架最核心.最常用的功能是怎么实现的. 网上介绍Spring,说源码的文章,大多数都是生搬硬推,都是直接看来的观点换个描述就放出来.这并不能说有问题 ...
- Problem C: 零起点学算法18——3个数比较大小
#include<stdio.h> int main() { int a,b,c; while(scanf("%d %d %d",&a,&b,& ...
- 选择改变事件OnCheckedChange
1.效果图:选择正确的提示选对,选择错误提示选错 2.activity_main.xml <?xml version="1.0" encoding="utf-8&q ...
- 修复XCode7 Beta版无法使用iOS8.4真机调试的Bug
在XCode7 Beta2下如果使用iOS8.4版的真机进行调试,XCode会提示: "Could not find Developer Disk Image" 解 ...
- 使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
原文:http://www.cnblogs.com/ityouknow/p/8403388.html 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成, ...
- ORA-12537:TNS:连接关闭 -------数据库最大连接数问题
问题: 我自己用PLSQL登录实验,我也登陆不了,可是让同事实验,他一会能够登录,一会不能够登录.应用还是能够正常访问,只是PLSQL登录异常. 分析: 基于这种情况去百度,有的说是配置文件有问题,有 ...
- python函数getopt用法
python内建模块,用来处理命令行参数 格式:getopt(args, shortopts, longopts = []) 参数args一般是sys.argv[1:]sys.argv[0]表示执行文 ...
- 项目笔记:导出Excel功能
1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...
- POJ Cow Exhibition
题目链接:Click Here~ 题目意思自己看吧. 算法分析: 对我来想是没有想到,最后看别人的博客才知道的.要把当中的一个条件当作体积.由于两个条件都存在负数,所以还要先保证最后不会再体积中出现负 ...
- C语言字符串操作总结大全(超具体)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...