
程序开发
文章平均质量分 90
xuliuzai
己欲立而立人 己欲达而达人!
展开
-
PyCharm工具使用小结
【文件】-->【设置】-->【插件】-->【Marketplace】-->【输入chinese查找】-->【选中Chinese (Simplified)Language Pack 】-->【安装】-->【重启PPyCharm】【文件】-->【设置]-->【项目】-->【Python解释器】-->点击【+】-->模糊查询到 需要安装的软件包 -->【install Package】查看html文件效果图:选择文件--【鼠标右键】-->【Open In】-->【Browser】-->选中某类型的【浏览器】原创 2024-11-28 23:40:34 · 711 阅读 · 0 评论 -
Archery系统调用my2sql读取binlog的功能优化
#####例如[2019/01/12 16:37:51] [fatal] context.go:401 start postion(-start-file -start-pos) must less than stop position(-end-file -end-pos)#err_info = {} ###注释掉的这段代码是把错误信息当初SQL信息,打印到前端SQL显示端。解析后没有SQL语句返回,可能的原因是解析过程中遇到了错误,而系统没有捕获错误,更没有将错误异常返回给操作者。原创 2024-10-18 22:23:04 · 491 阅读 · 0 评论 -
再看Python基础知识
存储中,如果一个字节的第一位是0,则这个字节单独就是一个字符;1个字节:在电脑初期,1个字节,2的8次方变化,就可以表示出 欧美 国家所有的字符(数字、字母、标点符号),这就是ASCII编码的由来。然后才能存储,所以内存中如果直接使用utf-8格式去存储字符,耗费的总时间=计算时间+存储时间,而内存中使用定长的unicode格式存储字符,就省去了计算时间,也就意味着如果用户输入的字符是:你y好,在内存中需要先经历计算的过程:“你”应该用3Bytes,“y”应该用1Bytes,“好”应该用3Bytes,原创 2024-10-18 22:22:02 · 930 阅读 · 0 评论 -
Python 学习笔记(二十)--Django REST Framework之认证
""""""request.user ###去Request类中去查找,方法属性userRequest类中的user()方法属性@property""""""if not hasattr(self, '_user'): ###判断self这个对象有没有_user属性with wrap_attributeerrors(): ##上下文管理器## 没用户,认证出用户return self._user ##有用户,则直接返回用户。原创 2024-10-18 22:21:06 · 758 阅读 · 0 评论 -
Python 学习笔记(十九)--Django REST Framework之GenericAPIView(二)
lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field ###定义变量,lookup_url_kwarg就是pk,路由中有名分组分出来的pk values 值。filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]} ###构造出一个字典对象,{pk:有名分组分出来的values值}。lookup_field 与 lookup_url_kwarg的说明。原创 2024-10-17 21:25:50 · 511 阅读 · 0 评论 -
Python 学习笔记(十八)--Django REST Framework之GenericAPIView
需要特比注意的是,类重写了as_view方法,【当调用时,actions参数必须赋值,否则报错。例如as_view({'get':'list','post':'create'})】##经过上面的for循环,对象有了对象.get(对应的list)\对象.post(对应的create)....这类方法。即路由中(url)需要配置对应关系,例如{'get':'list'},表示当get请求到来,就会执行list方法。在开发者编写的视图类中,可以直接为queryset赋值。(1)先从本视图类中查找;原创 2024-10-17 21:24:47 · 749 阅读 · 0 评论 -
Python 学习笔记(十七)--Django REST Framework之Response
一切皆对象,其实函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋值给其它对象名,或者作为参数传递。.data 传给response对象的序列化后,但尚未rendered处理的数据.template_name:渲染的模板名字(可以自定义模板).headers:响应头(可以向响应头中添加数据--字典)..content 经过rendered处理后的数据。data属性对应的为要返回的数据, 字典类型.。status:返回的状态吗,默认为200.。.status_code 为响应状态吗.原创 2024-10-17 21:23:12 · 933 阅读 · 0 评论 -
Python 学习笔记(十六)--Django REST Framework之serializers
序列化:序列化器会把模型对象转换成字典,经过response以后变成json字符串。反序列化:把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型。反序列化,可以完成数据校验功能。原创 2024-10-17 21:22:25 · 1203 阅读 · 0 评论 -
Python 学习笔记(十五)--Django REST Framework之Request
只要继承了APIView,视图类中的request对象,都是经过二次封装的新request对象了,而老的request对象对应的是新request._request。##频率组件:限制视图接口被访问的频率次数--限制条件(IP、id、、唯一键)、频率周期时间(s、m、h)、频率次数(3/s)##合法用户:代表校验通过,用户存储在request.user中,再进行下一步校验(权限校验)##非法用户:代表校验失败,抛出异常,返回403权限异常结果。##游客:代表校验通过,直接进入下一步校验(权限校验)原创 2024-10-17 21:06:59 · 839 阅读 · 0 评论 -
Python正则表达式(小结)
使用方括号 [ ] 包含一系列字符,能匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能匹配其中字符之外的任意一个字符。表达式案例匹配功能[abc5@]匹配"a"或"b"或"5"或"@"[^abc]匹配"a","b","c"之外的任意一个字符[f-k]匹配"f"~"k"之间的任意一个字符[^A-F0-3]匹配"A"~"F","0"~"3"之外的任意一个字符。注意:虽然可以匹配其中任意一个,但是只能是一个,不是多个。原创 2024-10-17 21:02:26 · 997 阅读 · 0 评论 -
Python读取Ansible playbooks返回信息
"""保存ansible最终执行结果的表"""id = models.AutoField('自增id', primary_key=True)clustername = models.CharField('HA 集群名字', max_length=200, default='')playname = models.CharField('Ansible剧本名称', max_length=360, default='')原创 2024-10-17 21:00:52 · 653 阅读 · 0 评论 -
Django Celery --异步任务队列
它主要通过消息(messages)传递任务,通常使用一个叫Broker(中间人)来协调client(任务的发出者)和worker(任务的处理者)。Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等。Producer : 任务生产者. 调用 Celery API , 函数或者装饰器, 而产生任务并交给任务队列处理的都是任务生产者.celery本身是不提供服务的,但是可以方便的和第三方提供的消息中间件集成。原创 2024-10-15 23:17:32 · 638 阅读 · 0 评论 -
Python 学习笔记(十三)---Archery API 接口开发
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful 风格的 Web 服务。Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过Swagger进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。原创 2024-10-14 22:13:30 · 1160 阅读 · 0 评论 -
python 学习笔记(十二)--Django 基本知识点小结
模型是一个Python类,它是由django.db.models.Model派生出的子类。一个模型类代表数据库中的一张数据表。模型类中每一个类属性都代表数据库中的一个字段。模型是数据交互的接口,是表示和操作数据库的方法和方式。数据库的查询需要使用管理器对象进行,通过MyModel.objects管理方法调用查询方法。查询方法用法作用等同于SQL返回值简单举例all()查询MyModel实体中所有所有的数据。QuerySet 容器对象[类似数组],内部存放MyModel实例。原创 2024-10-14 22:02:58 · 1167 阅读 · 0 评论 -
Python学习笔记(十一)-- Django API RESTful
(2)视图类(提供给用户访问,相当于原来的视图函数);可选,用于给静态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。step 2:Django 加载主路由文件中的urlpatterns变量【包含很多路由的数组】。step 3:依次匹配urlpatterns中的path,匹配到第一个合适的中断后续匹配。作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。有零或者多个“/” 符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。原创 2024-10-14 22:00:45 · 670 阅读 · 0 评论 -
Archery 学习(二)---Mysql查询超时主动Kill查询进程
其按钮对于的方法为def query(request),位于 .../sql/query.py 文件中。kill_connection的具体定义,在文件.../sql/engines/mysql.py中。kill_query_conn的定义也很简单,方法位于文件 .../sql/query.py中。这个方法定义在 ..../common/utils/timer.py文件中。其代码定义位于.../sql/utils/tasks.py文件中的。"""终止查询会话,用于schedule调用"""原创 2024-10-14 21:58:33 · 644 阅读 · 0 评论 -
Python学习笔记(十一)---QuerySet、pt-fingerprint
取出题库中指定ID号的试题,排除试题中密级为1的试题。l_newList为前台传来的选中的试题ID,要把这些ID中密级为1的ID号排除,查询到所有密级不为1的试题ID,存放在List中。filter(),返回包含与给定查询参数匹配的对象的查询集(对象组成的查询集合)。前面的QuerySet 是告诉我们这个是一个查询集,真正的查询集内容是列表[]里面的东西,<>表示查询集的范围。注意点:django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。原创 2024-10-14 21:57:30 · 655 阅读 · 0 评论 -
html常用的表格插件--Bootstrap table
Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。其官方网站地址为:http://bootstrap-table.wenzhixin.net.cn/,里面可以下载使用所需的JS和CSS文件,以及参考文档和例子。1.Bootstrap table是什么,怎么使用。2.bootstrap 教程文档。详细内容请参阅以下网站。原创 2024-10-14 21:56:28 · 212 阅读 · 0 评论 -
SQL Archery 代码说明及优化(一)
一级子任务并发执行,属于统一个一级子任务的二级任务串行执行。判断多任务还是单任务,是依据提交的工单需要在单个实例上执行还是要多个实例上执行(即实在一个mha集群上执行还是在单个mha集群上执行),多个实例上执行,就是多任务,需要并发;即orderdb1,orderdb2,orderdb3,orderdb4 这四个库部署在了MHA集群1上,4个分库共用一个DB实例,类似 orderdb5,orderdb6,orderdb7,orderdb8这四个库部署在了MHA集群2上,这四个库共用另一个DB实例。原创 2024-10-14 21:54:58 · 749 阅读 · 0 评论 -
Python用来监听解析Mysql Binlog的模块---python-mysql-replication
python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据更改时失效缓存,监听dml事件通知下游业务方做对应处理。原创 2024-10-13 10:41:38 · 953 阅读 · 0 评论 -
调试Archery连接SQL Server提示驱动错误
当我们在调试Archery的时候,连接SQL Server 会报错,而MySQL部分没有问题。报错信息如下:记录下 我们是怎么定位问题、寻找技术文档帮助、和安装相关组件的。原创 2024-10-13 10:39:15 · 1204 阅读 · 0 评论 -
Python 学习笔记(十)---推导式、面向对象
class 类名:属性(特征)方法(动作)注意:类名,首字母大写,如果是多个单词遵循驼峰式命名。原创 2024-10-13 10:34:46 · 628 阅读 · 0 评论 -
Archery v1.7.0 亮点窥览【转载】
Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持主流数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能,所有功能都兼容手机端操作。原创 2024-10-13 10:33:03 · 391 阅读 · 0 评论 -
DB审核查询平台Archery--安装部署可能遇到的问题
Archery是archer的分支项目,定位于SQL审核查询平台,旨在提升DBA的工作效率,支持多数据库的SQL上线和查询,同时支持丰富的MySQL运维功能,所有功能都兼容手机端操作。功能清单数据库类型查询审核执行备份数据字典慢日志会话管理账号管理参数管理数据归档MySQL√√√√√√√√√√MsSQL√×√×××××××Redis√×√×××××××PgSQL√×√×××××××Oracle√。原创 2024-10-13 09:39:12 · 1701 阅读 · 0 评论 -
Python学习笔记(九)--Django框架2
作为Web框架,Django需要一种很便利的方法来动态地生成HTML。常见做法是使用模板。模板包含所需HTML输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。模板任务就是输出数据,数据方式:直接输出,过滤输出,判断输出,循环输出。原创 2024-10-13 09:37:52 · 798 阅读 · 0 评论 -
Python学习笔记(八)--Django框架
框架就是程序的骨架,主体结构,也是个半成品。模型是项目中的数据信息源,它包含着储存数据的必要字段和行为。通常,每个模型对应数据库中的一张表,每个属性对应一个字段。每个模型都是django.db.models.Model的一个Python子类。Django提供一套自动生成的用于数据库访问的API;模型与数据库的关系是ORM关系(对象--关系--映射)。原创 2024-10-13 09:28:28 · 1004 阅读 · 0 评论 -
Python 学习笔记(七)--socket
Step 4:客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文。Step 3:客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段,并返回最后一段TCP报文。recv_data = socket.recv(512).decode('utf-8') ##512是我们定义的bufsize.这个方法返回的是bytes。原创 2024-10-12 23:58:59 · 672 阅读 · 0 评论 -
Python 学习笔记(六)--线程
自定义进程类,继承Process类,重写run方法(重写Process的run方法)。import osdef __init__(self, name): ##重写,需要__init__,也添加了新的参数。##Process.__init__(self) 不可以省略,否则报错:AttributeError:'XXXX'object has no attribute '_colsed'print("子进程(%s-%s)启动" % (self.name, os.getpid()))原创 2024-10-12 23:57:29 · 781 阅读 · 0 评论 -
Python 学习笔记(五)
如果可选参数 block 是True(默认值) 而且timeout是None(默认值), 将会阻塞当前进程,直到队列中出现可用的对象。multiprocessing模块提供了类似threading模块的接口,并对进程的各种操作进行了良好的封装,提供了各种进程间通信的接口例如Pipe, Queue等等,可以实现进程间的通信,同步等操作。特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易读。原创 2024-10-12 23:54:31 · 928 阅读 · 0 评论 -
通过Python收集汇聚MySQL 表信息
文件为get_mysql_db_connect.pyimport sysimport os# 获取连接串信息# 获取连接串信息文件为mysql_exec_sql.py,注意需要导入上面的model。##需要显式关闭##显式关闭conn。原创 2024-10-12 23:53:35 · 689 阅读 · 0 评论 -
通过Python收集MySQL MHA 部署及运行状态信息的功能实现
当集团的MySQL数据库实例数达到2000+、MHA集群规模数百个时,对MHA的及时、高效管理是DBA必须面对的一个挑战。MHA 集群 节点信息 和 运行状态 是管理的基础。本篇幅主要介绍如何通过Python实现收集MHA 集群 节点信息 和 运行状态的功能。这些信息将是CMDB信息的重要组成部分。MHA集群数百个,MHA Manager 节点 十几个,一个MHA Manager 节点管理着50-60个集群。原创 2024-10-12 23:48:23 · 965 阅读 · 0 评论 -
python 学习笔记 (四)
Flask是由python实现的一个web微框架,可以使用Python语言快速实现一个网站或Web服务。1.2.构造基本步骤ste1.创建api对象;step2.生成resource子类,并定义该类的方法;step3.绑定路由。原创 2024-10-12 23:46:13 · 791 阅读 · 0 评论 -
python 学习 (三)----文件操作、RESTful
客户端用到的手段,只能是HTTP协议。严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。(2)客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;原创 2024-10-12 23:41:59 · 963 阅读 · 0 评论 -
Python发送的邮件设置收件人隐藏与显示
receivers = ['收件人1@q1q2w1w2.com','收件人2@q1q2w1w2.com'] # 接收邮件。mail_user = "OrderCWS_Inform@q1q2w1w2.com" # 用户名。mail_user = "OrderCWS_Inform@q1q2w1w2.com" # 用户名。mail_host = "mail.q1q2w1w2.com" # 设置服务器。mail_host = "mail.q1q2w1w2.com" # 设置服务器。原创 2024-10-11 23:17:20 · 976 阅读 · 0 评论 -
通过Python实现生成excel并邮件发送的功能
工作虽然简单,但是还是需要花费大家的时间和经历,所以,通过一份简单的python代码来实现此功能。## 定义title的坐标:row=0,col=0~字段总数 也就是excel的第一行:0,0 ~ 0,len(fields),通过fields[field][0] 获取字段名。## 定义title的坐标:row=0,col=0~字段总数 也就是excel的第一行:0,0 ~ 0,len(fields),通过fields[field][0] 获取字段名。# 查询数据结果和字段名字 赋值给两个变量。原创 2024-10-11 23:13:50 · 1128 阅读 · 0 评论 -
K8S基础学习
k8s全称kubernetes。K8s 是 Google 在 2014 年开源出来的用于解决生产环境中大规模容器编排的组件。换言之,k8s是为容器服务而生的一个可移植容器的编排管理工具。K8s三大特性:第一,K8s 自带便捷性,包括故障自愈、容器编排、服务发现,使应用更便捷。第二,K8s 在数据库、Serverless、边缘计算、微服务等多种技术领域的应用,扩展了其使用场景的边界。第三,K8s 具备的稳定性与安全性为其生产应用提供了强有力的支持。原创 2024-10-11 23:12:31 · 877 阅读 · 0 评论 -
通过Python实现对SQL Server 数据文件大小的监控告警
" + "<br><h4>" + mail_body + "</body></html>"告警邮件的功能实现为mssql_alert_dblogsize.py,此份代码的告警阈值设置的为50G,数据来自于视图v_mssql_dblogsize。获取连接串的组件mssql_get_db_connect.py。原创 2024-10-11 22:29:03 · 746 阅读 · 0 评论 -
Python学习笔记(一)--数据类型、复制、函数
搜索变量的规则是:(1)如果有内部函数,先找内部函数自身的变量;(2)如果内部函数自身没有变量,则找外部函数的变量;(3)如果外部函数也不存在此变量,则找全局;(4)如果全局也没有此变量则找builtins;(5)如果内部builtins也没有,则报错。原创 2024-10-10 11:36:27 · 809 阅读 · 0 评论 -
Python学习笔记(二)---标签、CSS
input的type属性值可以是:text、password、checkbox、radio、submit、button、reset、file、hidden。人口普查、太阳系、家谱、参观菜单,甚至你的所有朋友都可以表示为一个列表或者是列表的列表。表格边框、折叠边框、表格宽度和高度、表格文本对齐、表格内边距、表格颜色。<li> 标签可用在有序列表(<ol>)、无序列表(<ul>)和菜单列表(<menu>)中。<dl> 标签用于结合 <dt> (定义列表中的项目)和 <dd> (描述列表中的项目)。原创 2024-10-10 09:11:27 · 1009 阅读 · 0 评论 -
安装可以查看PMM 源码的Go环境
最近在搭建PMM数据库监控系统,我们知道 Prometheus 是 PMM Server 的重要组件,*_exporter是PMM Client的主要组件。归属组件名称作用Server组件Prometheus一个开源的服务监控系统和时间序列数据库,它连接到PMM Client上的exporter聚集DB的监控数据。Client组件Prometheus exporter用于搜集一般系统信息Prometheus exporter用于搜集MySQL Server的信息。原创 2024-10-01 00:19:09 · 774 阅读 · 0 评论