1、服务器端收到的数据和客户端的数据不一样

print(request.post)

少发了,还是少取了,说明根本没有把数据全发过来

print(request.body)

1、只把字典的key给我发过来的

答:这是正常的,这种方式去提交的时候,伪造的是from表单的提交

2、你发数据向后台发点什么?

只可能存字符串,不可能存在字典

2、post是怎样把请求发到后台的

要发怎么发?把字典转换成字符串,必须这么发,因为后台它只认识这种请求头,根据这种结构进行解析

username: 'xxx'
username: '123'
hobby: [1,2,3,4]
hobby: {} $ajax({
url: 'xx',
data:{
k1: 1,
k2: "xx"
k2: [1,2,3,4],
k2: JSON.stringfy({'kk1':'xxx'}),
} }) #Form表单提交和默认提交 + request.post(data='xxx')
#k1=1&k2=xx, content-type: annotation/x-www-form-urlencoded
后台: request.POST,
- annotation/x-www-form-urlencoded
- 根据这种结构解析: k1=1&k2=xx #定义请求头:
$ajax({
url: 'xx',
headers:{'content-type':'application/json'},
data: JSON.stringfy({k1':1,k2:"xx",k2: [1,2,3,4],}),
}) #"{k1':1,k2:"xx",k2: [1,2,3,4],}", content-type: application/json 后台: request.POST,
- annotation/x-www-form-urlencoded
- 根据这种结构解析: k1=1&k2=xx
request.body 

具体代码

class BaseClient(object):
def __init__(self):
self.api = settings.API def post_server_info(self,server_dict):
# requests.post(self.api,data=server_dict) # 1. k=v&k=v, 2. content-type: application/x-www-form-urlencoded
response = requests.post(self.api,json=server_dict) # 1. 字典序列化;2. 带请求头 content-type: application/json def exec(self):
raise NotImplementedError('必须实现exec方法')

3、线程池

1、引子:

如果是100台每台等2分钟,ssh是串行要等200分钟

2、代码如下:

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import time def task(arg1,arg2):
print(arg1,arg2)
time.sleep(1) pool = ProcessPoolExecutor(20) for i in range(100):
pool.submit(task,i,i)

3、关于线程池的说明:

1、刚开始我们不知道多少个池子,我就默认创建20个
2、现在他没有执行,当我们用的时候边用边执行

4、进程池

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import time def task(arg1,arg2):
print(arg1,arg2)
time.sleep(1) pool = ThreadPoolExecutor(20) for i in range(100):
pool.submit(task,i,i)

小结:

1、python2默认没有线程池,只有进程池,python3就有

2、通过一行代码给它改成进程池

3、不要用python2以前里有进程池,很麻烦

CMDB服务器管理系统【s5day89】:采集资产之汇报信息的更多相关文章

  1. CMDB服务器管理系统【s5day88】:采集资产之Agent、SSH和Salt模式讲解

    在对获取资产信息时,简述有四种方案. 1.Agent  (基于shell命令实现) 原理图 Agent方式,可以将服务器上面的Agent程序作定时任务,定时将资产信息提交到指定API录入数据库 优点: ...

  2. CMDB服务器管理系统【s5day87】:需求讨论-设计思路

    自动化运维平台愿景和服务器管理系统背景 服务器管理系统 管理后台示例 需求和设计 为什么开发服务器管理系统? 背景: 原来是用Excel维护服务器资产,samb服务[多个运维人员手动维护] 搭建运维自 ...

  3. CMDB服务器管理系统【s5day91】:如何实现允许临时修改主机名

    一.sn号唯一 & 如何实现允许临时修改主机名 1.物理机 1.sn,物理机唯一 2.后台管理: 买服务器,清单:SN号,硬盘,内存... 作业:python 读取excel,xldt 3.资 ...

  4. CMDB服务器管理系统【s5day92】:服务器管理回顾

    一.服务器管理回顾 1.requests 发送: requests.post(url='',data=,json=) requests.get() Django接受: request.POST, co ...

  5. CMDB服务器管理系统【s5day89】:采集资产之整合资产

    1.业务逻辑单独写 1.代码目录结构 2.client.py from src.plugins import PluginManager class BaseClient(object): def p ...

  6. CMDB服务器管理系统【s5day91】:资产采集相关问题

    资产采集唯一标识和允许临时修改主机名 class AgentClient(BaseClient): def exec(self): obj = PluginManager() server_dict ...

  7. CMDB服务器管理系统【s5day89】:部分数据表结构-资产入库思路

    1.用django的app作为统一调用库的好处 1.创建repository app截图如下: 2.好处如下: 1.app的本质就是一个文件夹 2.以后所有的app调用数据就只去repository调 ...

  8. CMDB服务器管理系统【s5day88】:采集资产-文件配置(一)

    django中间件工作原理 整体流程: 在接受一个Http请求之前的准备 启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器. ...

  9. CMDB服务器管理系统【s5day88】:采集资产-文件配置(二)

    上节疑问: 1.老师我们已经写到global_settings里了,为什么还要写到__init__.py setting 这的作用是为了:整合起两个的组合global_settings和setting ...

随机推荐

  1. Linux运维高级-核心知识提高

    一.Linux之定时任务crond 二.Linux之用户管理 三.Linux之初识磁盘 四.Linux之磁盘管理 五.Linux三剑客-SED 六.Linux三剑客-AWK 七.初识shell编程 八 ...

  2. 入门 Webpack,一篇就够了

    阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...

  3. 性能测试监控平台:InfluxDB+Grafana+Jmeter

    前面的博客介绍了InfluxDB.Telegraf.Grafana的安装和使用方法,这篇博客,介绍下如何利用这些开源工具搭建性能测试监控平台... 前言 性能测试工具jmeter自带的监视器对性能测试 ...

  4. Busybox的syslogd认识与使用

    关键词:rcS.start-stop-daemon.syslogd.syslog().klogd.klogctl().syslog.conf./dev/log.facility/level等等. sy ...

  5. Visual Studio 2017 设置透明背景图

    一.前言 给大家分享一下,如何为VS2017设置透明背景图.下面是一张设置前和设置后的图片. 设置前: 设置后: 二.设置背景图片的扩展程序 我们打开VS的扩展安装界面:[工具]->[扩展和更新 ...

  6. Linux下安装 Python3

    前言 Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2 ...

  7. AOP从静态代理到动态代理 Emit实现

    [前言] AOP为Aspect Oriented Programming的缩写,意思是面向切面编程的技术. 何为切面? 一个和业务没有任何耦合相关的代码段,诸如:调用日志,发送邮件,甚至路由分发.一切 ...

  8. hbase集群搭建参考资料

    hadoop分布式集群搭建 http://www.ityouknow.com/hadoop/2017/07/24/hadoop-cluster-setup.html hbase分布式集群搭建: htt ...

  9. C#中的虚函数及继承关系

    转载:http://blog.csdn.net/suncherrydream/article/details/8423991 若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法. 虚 ...

  10. jdk 动态代理的原理

    一.代理设计模式 代理设计模式是Java常用的设计模式之一. 特点: 01.委托类和代理类有共同的接口或者父类: 02.代理类负责为委托类处理消息,并将消息转发给委托类: 03.委托类和代理类对象通常 ...