自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 Django signal 信号机制的使用

背景:如果这个任务(定时或者立即)执行完毕,然后把一些执行情况生成pdf,通过邮件发送给客户。现象:我通过celery周期查看任务的执行状态,如果任务执行完毕,异步更改任务状态,然后执行发送邮件。但是时不时会出现重复发送邮件,原因异步任务重复进入celery任务队列,导致有的任务会重复发送邮件。解决方案:通过django的signal信号机制来监测任务状态表数据的变更,一旦任务状态变成完成,触发signal信号,然后执行发送邮件逻辑代码。(但是需要注意不要在周期之中反复更改这个状态)要监控的表结构:

2021-01-22 14:46:13 504 1

原创 python生成PDF的方式对比总结

根据我调研的生成pdf的方式(python)有reportlab、pdfkit、xhtml2pdf、django-easy-pdf.一、reportlab可自己绘制各种图表,只是依赖于这个reportlab库,其次字体问题,可以引入字体文件进行解决。二、pdfkit可根据url、html、字符串生成pdf文件,确实很好用,但是也有缺陷,也存在字体问题以及样式问题,字体需要在环境中设置字体,过于复杂或者高级的css样式不支持。三、xhtml2pdf以及django-easy-pdf都是走的模板渲染方式、

2020-12-15 14:53:30 6028

原创 python pyvmomi操作VMware(九):正确获取克隆的虚拟机IP所有信息

背景: 克隆出来的虚拟机遇到了一个很奇怪的现象,克隆配置的IP和显示的第一IP地址不符合,如下图,当我去检查配置的IP,机器上的IP也配置成功了,但获取IP却是192.168.122.1。目的: 获取克隆出来的虚拟机对象的IP是192.168.30.222。原获取IP的代码:vm = self._get_obj([vim.VirtualMachine], vm_name)if not vm: return {'info': {}, 'status': False}summary = vm

2020-09-18 10:17:23 3794 3

原创 python pyvmomi操作VMware(八):根据模板克隆虚拟机(类型是Windows)配置密码

一、需求:1.克隆的虚拟机是Windows类型2.克隆的虚拟机要能指定IP、主机名等信息(上一节已经实现)二、文档调研:现在出现一个非常棘手的问题,计算机的新管理员密码。要指定密码应设置为空(即没有密码),请将密码值设置为NULL。由于加密,“”不是有效值。如果XML文件是由VirtualCenter自定义向导生成的,则密码将加密。否则,客户机应该将明文属性设置为true,这样定制过程就不会试图解密字符串。很明显可以看出来value字段是字符串类型,那么就是最后密码的设置字段。三、思路:

2020-09-18 10:04:27 2173 2

原创 Python F5创建vs时,可以选择类型,也可以设置persist为cookie(三)

经过需求确认、文档和客户端操作的调研,若设置persist为cookie,则HTTP Profile需要选择一个值,如/Common/http,但是vs的类型是standard,经过文档的挖掘,变相实现了类型的选择,可惜的是只能选择Standard和Performance (Layer 4)。在此,创建VS的时候加入了一些字段,类型、sourceAddressTranslation、persist、profiles。 def create_vs(self, vs

2020-09-18 09:26:34 505

原创 python pyvmomi操作VMware(六):操作集群的Drs开启、关闭状态

这一节主要介绍关于集群drs的开启、关闭操作。一般更新对象属性逻辑:获取到这个对象,然后找到这个这个对象对应的属性,对这个属性进行赋值更改。问题:经过研究官方文档,发现更改状态或者其它信息,这样做是行不通的,需要通过执行任务的方式才能进行更改相关信息。思路:由于我们只需要更改其中某一个属性,其它的属性不变,所以Drs相关配置信息,除了要更改的字段,其它配置信息都取原对象的配置信息,保持对象属性的一致性。代码如下: def update_cluster_drs(self, cluster_objs_

2020-08-26 17:45:13 1510

原创 python pyvmomi操作VMware(七):根据模板克隆虚拟机(类型是Windows)指定IP、主机名等信息

背景:当客户克隆的虚拟机是Windows类型,并且还要指定IP、主机名等信息。问题:根据之前的克隆方法、发现模板是Windows类型时,怎么指定主机名都失败,报错信息:指定的参数不正确: spec.identity过程:经过研究官方的文档,发现一个比较有趣的事情,就是克隆指定一些配置信息,windows和Linux是区分开的,当模板是Windows时,identity采用Sysprep的配置;模板是Linux等系统时,identity采用LinuxPrep的配置。Sysprep的配置信息如下:这里

2020-08-26 17:28:55 3818 13

原创 Python F5创建monitor、pool、node以及vs(二)

一、环境依赖对f5进行操作,我们需要下载f5-sdk的依赖包。f5-sdk==3.0.21urllib3==1.25.7# 安装命令:pip install f5-sdk==3.0.21 urllib3==1.25.7二、有关官方的样例介绍f5-sdk网址在开发的时候,由于导入的依赖是sdk,意味着我们可以直接使用里面的代码来为自己服务。三、创建monitor、pool、vs# -*- coding: utf-8 -*-import jsonfrom common.log im

2020-08-22 09:51:01 2045

原创 python pyvmomi操作VMware(五):在克隆虚拟机的时候配置IP和vlan网段

克隆虚拟机的时候配置了IP、网关等信息,没有指定网络段,之前的思路是:克隆完虚拟机,再进行指定网络段,再进行关机、开机操作,正常情况下这样就能完成网络段的修改,并且网络也是通的。最近遇到一个问题:批量克隆的时候,很多都无法完成IP、网关的指定,但是网络段是配置正常的。有两种猜想:①我使用的pyvim依赖包版本太低升级版本之后,发现并没有起作用。②克隆虚拟机完成(存在这个机器,正在开机过程中),在开机过程中,指定了它的IP等信息,但是还没有等它指定完成,就进行了修改网络段操作,继而进行了关机操作,这

2020-07-25 09:35:06 2322 2

原创 Nexus创建仓库、上传文件、查看列表

Ⅰ.通过仓库名获取文件列表import requestsimport json# 文件列表 参数 仓库名称 返回code 200# 请求方式: GETurl = '192.168.1.111:8081'auth = ("admin", "admin123")res = requests.get( url='http://{0}/service/rest/v1/components'.format(url), params={"repository": "test"},

2020-06-24 17:09:41 1939

原创 python 将nmon文件解析成带图的excel

源文件:通过nmon命令生成的nmon数据文件。目标文件:使用python代码解析成带图的excel。

2020-05-11 11:45:32 1062

原创 从nmon安装到csv数据的读取

一、nmon获取到.nmon数据文件(环境centos6)1.安装nmon执行命令:wget https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz第二步:解压到一个指定的目录nmon16d_x86(先创建好)第三步:对nmon_x86_64_centos6文件加入执行权限,再把该程序文件加入环境变量运行目录...

2020-04-27 18:08:04 678

原创 Django admin后台数据导出excel

admin.py文件内容# -*- coding: utf-8 -*-# Author : heyang# @Time : 2019/7/18 14:20# @File : admin.pyimport xlwt as xlwtfrom django.contrib import adminfrom django.http import HttpResponsefrom mo...

2020-04-22 16:40:07 1128 2

原创 表结构变更部署失败案例及解决方案

现象:导入的数据及结构在升级版本时,结构发生变更,不识别django_migrations表数据(内容不匹配),从而导致部署时,migrate失败报错,部署失败。前提:数据结构变动不大,新版本的表字段只能多,不能少,字段类型能够适应老版本的数据。目标:数据要保留,数据不能发生变更,但是数据结构要用最新的数据结构。解决方案(思路):举个例子:项目内有个home_application内mi...

2020-03-04 20:21:50 667

原创 Django and Celery, AppRegistryNotReady: Apps aren't loaded yet.

django版本升级导致celery启动报错,主要原因:django升级后的版本和celery版本不兼容。我的案例:# 升级前django==1.8.11celery==3.1.18django-celery==3.2.1# 升级后django==1.11.24celery==3.1.25django-celery==3.2.2报错信息:[2019-12-20 14:44:...

2019-12-20 15:02:39 573

原创 python、Django、djangorestframework升级遇到的坑(一)

具体环境升级介绍python2.7升级到python3.6Django1.8.11升级到Django 3.0djangorestframework3.6.3升级到djangorestframework3.10.31.安装包python3不支持的安装包:sudspython3 需要多安装/替代的依赖包:anyjsonsuds-jurko其余自动安装默认最新的2.pytho...

2019-12-10 10:43:35 1335 1

原创 python F5创建pool和创建member(一)

一、环境依赖对f5进行操作,我们需要下载f5-sdk的依赖包。f5-sdk==3.0.21urllib3==1.25.7# 安装命令:pip install f5-sdk==3.0.21 urllib3==1.25.7二、有关官方的样例介绍f5-sdk网址在开发的时候,由于导入的依赖是sdk,意味着我们可以直接使用里面的代码来为自己服务。三、创建memberfrom f5....

2019-11-20 14:15:55 2353

原创 在Pypi上发布自己的Python包

在这里我自己写了一个样例:把计算从1加到n的和封成一个python包。账号准备工作:https://pypi.org/account/register/注意: 记得进行邮件验证,防止邮件不验证,发送包无法上传的情况。包内容准备工作:# -*- coding: utf-8 -*-def add_sum(a): ''' 计算从1+到a :param a: ...

2019-10-16 18:00:00 1044

原创 itsm项目导入流程失败案例

itsm项目现象:流程设计导出后,再把导出的文件进行导入时失败。产生原因:当删除的节点存在依赖关系时,其他有关数据节点并没有进行相应的变更,直接进行保存,导致依赖的节点中的“打回至”字段值异常,进一步导致导出的流程数据存在数据污染。案例:这里以“基础环境信息”和“分配IP地址”两个节点为样例,我将“基础环境信息”节点删除后,不对“分配IP地址”节点的“打回至”字段值进行修改,直接进行下一步...

2019-10-15 16:15:28 218

原创 xml格式数据转成json

如何将xml代码转成json格式的代码?在这里,我才用的是引入xmltodict依赖包,用xmltodict来解决这个问题。首先,安装xmltodict:pip install xmltodict==0.12.0其次,样例xml解析成json演示:# -*- coding: utf-8 -*-import xmltodictimport jsona = '''<Logon...

2019-10-11 15:41:37 1551

原创 gitlab使用CI/CD

第一步:找一台机器,如果没有curl命令,执行安装命令:sudo apt-get install curl第二步:在机器上安装gitlab的runner,执行命令:sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binarie...

2019-09-29 14:44:56 394

原创 ESB接口编写到部署(包括ESB通道文档代码)

内容一:ESB接口编写目录结构testxw包下:clone_vmware.py: ESB自定义接口编写文件toolkit文件夹:ESB的配置文件和公共方法的文件toolkit文件夹下:configs.py:配置文件tools.py:引用的依赖等公共方法注意:1.SYSTEM_NAME代表系统名,ESB包名称也就是ESB的系统名的小写形式。 2.HOST代表系统环境的域名地址,也...

2019-09-16 18:17:01 5172 1

原创 python pyvmomi操作VMware(三):获取数据中心下有多少集群、主机、目录(只获取数据中心当层数据)

获取数据中心下有多少集群、主机、目录(只获取数据中心当层数据,不进一步对集群、目录下的数据进行深层获取)# -*- coding: utf-8 -*-import tracebackfrom pyVim.connect import SmartConnectNoSSL, Disconnectfrom pyVmomi import vim, vmodlclass VmManage(ob.........

2019-09-10 17:16:38 3694 1

原创 HMC postman测试登录连接中的坑

HMC API 文档,请点击这里要对HMC进行登录获取到session,就需要用到HMC中的登录API接口:HMC登录接口需要什么?第一: PUT请求第二: content type 类型第三: type 类型(经过验证,可有可无)第四: XML登录输入(XML代码)postman测试HMC登录获取session:1.headers信息2.body信息开始发送PUT请求...

2019-09-09 15:57:02 248

原创 python pyvmomi操作VMware(二):获取数据中心、集群、宿主机、虚拟机的数据和对象的具体属性字段

首先使用pyVim连接vcenter获取到vcenter可操作对象:# -*- coding: utf-8 -*-from pyVim.connect import SmartConnectNoSSLclass VmManage(object): def __init__(self, host, user, password, port, ssl): self....

2019-09-09 15:00:01 9589 4

原创 python pyvmomi操作VMware(一):对vsphere登录后vcenter的理解

pyvmomi连接vsphere获取vcenter操作对象:# -*- coding: utf-8 -*-from pyVim.connect import SmartConnectNoSSLclass VmManage(object): def __init__(self, host, user, password, port, ssl): self.host...

2019-09-05 11:03:25 11882 8

原创 python pyvmomi操作VMware(四):克隆虚拟机并配置IP和更改vlan网段

准备环境安装包:pyVim==0.0.21 pyvmomi==6.7.1命令:pip install pyVim==0.0.21 pyvmomi==6.7.1代码# -*- coding: utf-8 -*-import tracebackfrom pyVim.connect import SmartConnectNoSSL, Disconnectfrom pyVmomi i...

2019-09-03 09:04:57 9039 58

原创 python pyecharts生成图表

使用pyecharts生成柱状图attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]chart = Bar("柱状图-数据堆叠", **style.init_style)chart.add("商家A", attr, v1, is_stack=True)chart.add("商家B", attr, v2, is_stack=True, is_more_utils=True)在这里主要是对属性的介绍字段用处title标题title_pos。...

2019-08-20 14:18:30 9667 4

原创 python pdfkit wkhtmltopdf生成pdf

pdfkit生成pdf文件的方式:① pdfkit.from_string() # 将字符串转成pdf文件,如果字符串是html代码,pdf也是识别的② pdfkit.from_file() # 将文件转成pdf文件③ pdfkit.from_url() # 将网址的整个内容转成pdf文件生成pdf代码样例: # info 代表文件路径 # e_file_path 代表生成的p......

2019-08-19 17:13:42 3056 1

原创 解决docker内wkhtmltopdf生成pdf的一系列问题

由于docker环境和主机环境隔离,想要在docker内用wkhtmltopdf生成pdf有两种解决方案。第一种:做映射。第二种:在docker内安装wkhtmltopdf,拿到wkhtmltopdf的路径,在代码里引用。在这里主要介绍第二种。第一步:获取当前项目docker的iddocker ps -a 获取所有docker的信息,自己匹配需要的第二步:将主机的wkhtm......

2019-08-19 16:19:14 5630

原创 pycharm打开.vue文件由于ESLint语法检查代码出现红色波浪线

在这里有两种解决方案:①设置不使用 ESLint 语法检查②通过ESLint中的fix eslint problems对.vue文件语法进行自动修复选中要修复的,vue文件,也可以选中整个文件夹进行修复(修复时间受修复的文件数量影响,如果文件数量比较大,不建议修复,可以设置ESLint不验证语法)。...

2019-06-05 18:05:17 4941

原创 django 自定义中间件 接口装饰器

现在要对一部分接口进行废除,采用全局自定义中间件实现。

2023-02-28 20:23:37 1913 1

原创 python 数据文件上传到ftp服务器

python ftp

2022-08-17 09:56:31 11775 4

原创 django tastypie基本使用

1. Tastypie RESTful API请求处理的基本流程描述Tastypie 是一个基于Python在Django平台上用来创建RESTFul API 框架, 在创建RESTful API 方面提供了强大的功能, 同时在使用上可以很方便地利用Django 自身的Model作为数据源, 也可以很方便地使用非ORM数据源来提供API数据。除了提供基本的数据功能之外, Tastypie 还提供了 登录验证, 权限控制, 数据验证, 数据缓存, 请求控制, 数据分页, 数据序列与反序列化等功能选项, 来

2021-06-28 16:17:22 2115

原创 asyncio aiohttp请求解决API接口耗时问题

现象:

2021-05-28 09:05:53 711

原创 django 使用mongodb数据库 celery并发自增字段

通过MySQL数据库的id自增特性来完成task_id在并发时的唯一def init_index_func(): from apps.celery.models import TaskIndex if not TaskIndex.objects.filter(id=1): task_queryset = cc_ReportTask.objects.all() task_id_list = [int(i.task_id) for i in task_quer

2021-04-30 14:41:45 405 2

原创 django部署(Nginx)

1.python3基础环境安装tar xzvf Python-3.6.8.tgz cd Python-3.6.8 ./configure --prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip32.python3安装虚

2021-03-23 16:53:12 336

原创 celery调度backend使用mongdb数据存储定时异步等信息

由于backends的引擎不含有mongodb,所以不能像mysql或者Oracle那样直接将celery的一些数据直接存入数据库。根据源码研究celery本身是支持mongodb存储定时异步等信息的,我查了django-celery的源码,是支持MySQL、Oracle等数据库的,但是不支持mongodb数据库,我的看法:可能与数据库的model设计差异有关,所以直接找有没有像django-celery一样的支持mongodb的依赖库。结果:Celery Beat Scheduler ,将任务表本身

2021-02-20 14:27:39 1080

原创 python 操作Oracle数据库

根据查询:python如果要操作Oracle数据库,需要依赖包来达到连接的Oracle的效果第一步:安装依赖pip install cx-Oracle==8.0.1第二步:进行连接import cx_Oracledef connection_oracle(connect_str, oracle_sql): """ Oracle连接执行sql并返回数据 :param connect_str: 连接字符串 :param oracle_sql: Oracle的sql

2021-01-22 14:21:32 697

原创 前端vue报错:ERROR in ./node_modules/css-loader!./node_modules/sass-loader/

前端vue在执行npm run dev的时候 报错:ERROR in ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/components/loading背景:在执行完npm install按照前端依赖环境后,安装依赖一切正常,没有报错。现象:在运行前端代码时,报错如下:根据查阅:报错的原因其实就是在进行依赖引入的时候,对应电脑的配置不同,导致的报错,只需要重新安装这个依赖就行。解决方案:执行命令

2021-01-22 14:04:31 12913

nmon analyser v46.xlsm

nmon解析文件,nmon analyser v46.xlsm文件里的VB代码,经过修改,可完成无需手动操作确认保存等操作,会自动保存。

2020-05-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除