自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 音频添加水印

【代码】Python 音频添加水印。

2023-12-07 17:03:01 450

原创 解决npm安装electron失败的问题

在网上百度、谷歌,我甚至使用 chatgpt 提问,得到的回答都是没有用的。就要放弃的时候,看到一解决方案,试了一下可用。

2023-08-20 22:13:30 166 2

原创 使用go 开发桌面应用,做了一个md编辑器

【代码】使用go 开发桌面应用,做了一个md编辑器。

2023-08-19 16:18:08 167

原创 golang 命令行生成样机图片

因为工作需要把一批图片按照样机处理成固定的样子,就用 golang 写了一个小脚本来处理。

2023-03-21 13:52:38 187

原创 go操作elasticsearch 如何打印query log

我们在写代码调试的时候,有时候需要打印es的query log 看下请求json到底长什么样。在new的时候我们需要传一个 实现了 elasticsearch 这个包Logger 接口的结构体进来。

2022-07-09 16:11:00 1255

原创 Prettier 前端代码格式化工具

### Prettier* * *是一个流行的代码格式化工具。##### 优点:* * *1. 可配置化2. 支持多种语言3. 集成多数的编辑器4. 简洁的配置项##### 安装* * *yarn add prettier --dev --exactnpm install --save-dev --save-exact prettier##### 配置文件* * *echo {}> .prettierrc.json##### 配置忽略文件* * *新建一个文件.

2021-09-14 18:13:14 312

原创 Thinkphp 5.0.24反序列化漏洞修复方案

Thinkphp 5.0.24存在反序化漏洞,入口点在thinkphp/library/think/process/pipes/Windows.php中__destruct魔术方法。网上有很多讲解如何利用这个漏洞进行攻击,百度Thinkphp 5.0.24反序化漏洞会出来一堆。但是如何修复这个漏洞没有讲解,我去Thinkphp 官网上也没有查到,我的建议一个是升级Thinkphp版本。下面是我的修复方案:第1种方案:修改removeFiles方法如下: /** * 删除

2020-11-24 17:10:47 7772 1

原创 所有Yii2 版本 反序例化漏洞修复

什么是反序列化漏洞 也叫PHP对象注入,漏洞形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。这个漏洞并不是PHP特有,在Java、Python其他语言也存在,原理基本相通。比较典型的PHP反序化漏洞可能会用到的魔术方法 1.void __wakeup(void) 2.void __construct ([ mixed $args [, $... ]]) ...

2020-11-24 16:40:59 739

原创 Windows 安装与使用splash

什么是SplashSplash是一个JavaScript渲染服务,带有HTTP API 的轻量级Web浏览器。能够并行地处理多个页面请求。Splash与Selenium对比Selenium在单台机器上运行Spider,如果是分布式Spider就要每台机器上都要安装Selenium,不支持异步,效率低Splash支持异步,分布式Spider可以使用一台Splash就可以了,效率高。安装Splash#安装docker##从这个页面下载 https://hub.docker.com/editions

2020-09-23 16:47:58 2466

原创 《Lua程序设计(第4版)》面向对象(Object-Oriented)编程

面向对象(Object-Oriented)编程Lua语言中的一张表就是一个对象,表与对象一样,可以拥有状态。表与对象一样,拥有一个与其值无关的的标识(self)两个具有相同值的对象(表)是两个不同的对象,而一个对象可以具有多个不同的值;最后,表与对象一样,具有与创建者和被创建位置无关的生命周期。参数self是所有面向对象语言的核心点。大多数面向对象语言都向程序员隐藏了这个机制。Lua语言同样可以使用冒号操作符隐藏该参数。例: Account = { balance =

2020-09-23 16:39:27 249

原创 《Lua程序设计第4版》读书笔记--闭包、模式匹配、日期和时间

第一类值 可以将某个函数保存到变量中(全局变量和局部变量)或表中 也可以将某个函数作为参数传递给其他函数 还可以将某个函数作为其他函数的返回值返回 例: a = {p = print} -- 'a.p'指向'print'函数 a.p("Hello World") -->Hello World 非全局函数 loca...

2020-09-17 11:37:15 99

原创 《Lua程序设计第4版》读书笔记--Lua基本语法

注释 单行注释,-- 多行注释 --[[ 多行注释 多行注释 --]]标示符 标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9) 大小写敏感Lua数据类型 Lua是一种动态类型语言 nil 表示一个无效值(在条件表达式中相当于false) boolean 包含两个值: false和true...

2020-09-16 14:32:58 256

原创 Xpath的高级使用

@xpath相邻元素定位 #前一位 preceding-sibling::div[1] #后一位: following-sibling::div[1] #前N位: preceding-sibling::div[N] #后N位: following-sibling::div[N]@xpath最后一个元素 #例:div[last()]@最后第二个元素 #例:di...

2020-08-19 17:23:47 170

原创 Scrapyd ScrapydWeb 简单高效地部署和监控分布式爬虫项目

@安装和配置#先确保所有主机都已经安装和启动Scrapyd,需要将Scrapyd配置文件中的bind_address修改为bind_address=0.0.0.0,然后重启Scrapyd service@安装scrapydweb#pip install scrapyweb@启动scrapydweb#/usr/local/python3/bin/scrapydweb@配置scrapydweb#scrapyweb启动之后,会在本地目录生成一个配置文件#启用 HTTP 基本认证##ENABLE

2020-08-06 16:36:23 834

原创 Scrapyd的学习笔记

@Scrapyd#是一个应用程序的部署和运行scrapy,它使您能问部署项目和控制他们蜘蛛使用JSON API@安装#pip install scrapyd#配置文件##/etc/scrapyd/scrapyd.conf (Unix)##/etc/scrapyd/conf.d/* (in alphabetical order, Unix)##scrapyd.conf##~/.scrapyd.conf (users home directory)@启动scrpayd#/usr/local/

2020-08-06 16:20:32 132

原创 Scrapy启动和退出时触发一个函数

我们在写scrapy时经常会遇到这要样的需求,在scrapy启动和退出时,想触发一个函数。只要这样写就可以了。#!/usr/bin/env python# -*- coding: utf-8 -*-from scrapy import signalsfrom pydispatch import dispatcherfrom scrapy.signalmanager import SignalManagerclass DemoSpider(scrapy.Spider): name =

2020-08-06 16:18:11 959 1

原创 python 3 读取redis带有‘b’的问题

这里我们存进去的是字符串类型的数据,取出来却是字节类型的,这是由于python3的与redis交互的驱动的问题,Python2取出来的就是字符串类型的。为了得到字符串类型的数据,你可以每次取出来decode一下,但是太繁琐了,可以这样设置: sr = StrictRedis(host='localhost', port=6379, db=0,decode_responses=Tru...

2019-11-27 17:44:55 461

原创 Vue.js学习笔记——入门

@什么是MVVM #MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。MVVM 就是将其中的View的状态和行为抽象化,让我们将视图UI和业务逻辑分开。当然这些事ViewModel已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。@什么是vue.js #Vue (读音 /vjuː/,...

2019-11-26 12:06:31 151

原创 Vue.js学习笔记——基础特性

@实例和选项 #Vue.js都是通过构造函数Vue({option})创建一个Vue的实例。 #一个Vue实例相当于一个MVVM模式中的ViewModel。 #实例化的时候,可以传入一个选项对象,包含数据、模板、挂载元素、方法、生命周期钩子等选项。@模板 #影响模板或DOM的选项 ##el ###类型字符...

2019-11-26 12:05:36 180 1

原创 C语言学习笔记——变量的存储类型和作用域

@变量的存储类型 #自动型(auto) #寄存器型(register) #外部型(extern) #静态型(static)@变量的存储方式 #静态存储方式 ##外部型变量(extern) ##静态型变量(static) #动态存储方式 ##自动型变量(auto) ...

2019-11-25 15:05:22 243

原创 C语言学习笔记

@C语法 #C程序中可以有预处理命令(例如include命令),通常预处理命令应放在程序的最前面。 #C程序的执行总是从主函数开始,并在主函数结束。主函数和其他函数的位置是任意的。 #有且只有一个主函数main,主函数可以调用任何其他函数,其他函数可以互相调用,但不能调用主函数。 #C程序中每一语句都以分号";"作为语句的结束。@变量的定义 ...

2019-11-25 15:04:11 116

原创 C语言中的strlen和sizeof的区别

@strlen和sizeof的区别 #strlen是求得的是字符串的长度,不包括结尾标志符'\0'的。 #sizeof是计算字符串占的总内存空间,包括结尾字符'\0'是被包括在里面的。@例子1: #char s[] = "China"; #printf("%d %d\n", strlen(s), sizeof(s)); #输出5 6...

2019-11-25 15:00:50 154

原创 Python jpg转成透明png

def transPNG(srcImageName, dstImageName): img = Image.open(srcImageName) img = img.convert("RGBA") datas = img.getdata() newData = list() for item in datas: if item[0] > 225...

2019-11-19 11:24:17 1976

原创 CentOS7 升级 python3 过程及注意

@检查当前的版本#python -V@安装python3.7#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel...

2019-11-19 11:23:15 151

原创 PHP学习笔记——类

@类的静态方法和静态属性 #静态方法是以类作为作用域的函数。静态方法不能访问这个类中的普通属性。但可以访问静态属性。 #在类的外部访问静态方法和属性 ##【格式】类名::属性、类名::方法 #在当前类中访问静态方法和属性 ##【格式】self::属性、self::方法@抽象类(abstract class) ...

2019-11-19 11:21:05 79

原创 Python学习笔记——多线程编程(三)

@信号量 #是一个计数器,当资源消耗时递减,当资源释放时递增。@两种信号量类 #Semaphore #BoundedSemaphore, 一个有界信号量会确保它当前的值不超过它的初始值。如果超过,则引发ValueError。@事例: #!/usr/bin/env pythonfrom atexit import regi...

2019-11-15 15:09:13 112

原创 Python学习笔记——多线程编程(二)

@线程同步 #多线程中总会有一些特定的函数或代码块不希望(或不应该)被多个线程同时执行。 #当线程间共享全局变量,多个线程对该变量执行不同的操作时,该变量最终的结果可能是不确定的 #临界区:指的是一个访问共用资源的程序片段。@锁 #有两种状态:锁定、未锁定。 #两个函数:获得锁(Lock.acquire)、释放锁(Lock.release...

2019-11-15 15:08:06 97

原创 Python学习笔记——多线程编程(一)

@进程 #一个执行中的程序@线程(轻量级进程) #同一个进程下执行的,并共享相同的上下文 #线程包括开始、执行顺序和结束 #线程是以并发方式执行,单核CPU系统中,实现是每个线程执行一小会儿。@GIL(全局解释器锁) #I/O密集型的Python程序要比计算密集型的代码能够更好的利用多线程。 #多线程环境中,Pytho...

2019-11-15 15:07:36 273

原创 Python学习笔记—— @函数装饰器及用法

@函数装饰器 #当程序使用“@函数”(比如函数A)装饰另一个函数(比如函数B)时,实际上完成如下两步 ##将被修饰的函数(函数B)作为参数传给@符号引用的函数(函数A) ##将函数B替换(装饰)成第1步的返回值@事例 def funA(fn):print('A')fn() # 执行传入的fn参...

2019-11-15 15:06:58 127

原创 Python学习笔记——测试

@测试分类 #单元测试 #全覆盖测试 @单元测试(测试方法) #引入unittest #例: name_function.py def get_formatted_name(first, middle,last): full_name = first + " " + middle...

2019-11-15 15:06:14 112

原创 Python学习笔记——异常

@ZeroDivisionError异常 #例: try: print(5/0) except ZeroDivisionError: print("You can't divide by zero !") @FileNotFoundEr...

2019-10-23 14:30:43 83

原创 Python学习笔记——文件操作

@读取整个文件 #例: with open('pi_digits.txt') as fp: contents = fp.read() print(contents)@逐行读取 #例: ...

2019-10-23 14:19:33 129

原创 Python学习笔记——类

@创建类 #成员变量和方法都是public的,没有类似public、private等访问修饰符控制访问权限。 #_xxx 单下划线修饰的成员变量,表示只有类实例或者子类实例可以访问,类似于protect#__xxx 双下划线修饰的成员变量,表示只有类对象自己能访问,类似于private #__init__(),代表类的构造方法 #class Cl...

2019-10-23 11:39:42 71

原创 Python 学习笔记——元组

@元组 #使用圆括号 #元祖的元素不能被修改@定义元组 #dimensions = (200, 500) #print(dimensions[0]) #遍历元组 ##fordimension indimensions: print(dimension)...

2019-10-22 17:58:12 86

原创 Python 学习笔记——字典

@字典 #使用{} #键-值对 #字典是一种动态结构@字典的操作 #alien_0 = {'color' : 'green', 'points' : 5} #访问字典 ##print(alien_0['color']) #添加键-值对 ##alien_0['x_position'] = ...

2019-10-22 17:57:37 166

原创 Python学习笔记——列表

@什么是列表 #由一系列按特定顺序的元素组成。 #索引是从0开始@列表的操作 #bicycles = ["trek", "cannondale", "redline", "specialized"] #访问 ##print(bicycles[1]) #修改 ##bicycles[0] = "yam...

2019-10-22 17:56:56 132

原创 python 学习笔记(一)

@变量 #不能以数字开头,包含字母、数字和下划线 #变量名不能包含空格 #不要有Python关键字@print() #python3.0之前的版本,可以这样写print "Hello,world" #python3.0print ("Hello,world")@字符串 #拼接字符串 ##使...

2019-10-22 17:55:42 127

原创 Docker基础入门五 Docker 数据管理

在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。@管理数据 #数据卷: 容器内数据直接映射到本地主机环境; #数据卷容器: 使用特定容器维护数据卷@创建数据卷 #例docker volume create -d local test@绑定数据卷 #在用 do...

2019-06-14 16:51:31 105

原创 Docker基础入门四 操作 Docker 容器

容器是镜像的一个运行实例。@新建容器,新建的容器处于停止状态 #命令docker [container] create #例:docker create -it ubuntu:latest@启动容器 #命令docker start容器ID或容器名 #例:docker start54d6@查看容器输出 #docker...

2019-06-14 16:50:37 136

原创 Docker基础入门三、使用Docker镜像

@下载镜像 #使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载 #docker pullhub.c.163.com/public/ubuntu:18.04 #选项 ##-a, --all-tags=trueifalse: 是否获取仓库中的所有镜像,默认为否。...

2019-06-14 16:50:01 124

python中文帮助手册chm

python中文帮助手册chm

2015-09-21

空空如也

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

TA关注的人

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