用PIL(pillow)为图片打半透明水印

利用PIL打水印的过程 1.将水印图片转RGBA模式,并设置透明度。如果是打文字水印,利用ImageDraw写出文字图片,RGBA模式。按需求设置图片长宽。 2.将原图转RGBA模式,获取长宽, 计算打水印的位置。 3.用Image的 alpha_composite 函数,整合两张 RGBA图片。 PIL打半透明水印代码 def water_mark_image(img:Image.Image)

Python 2020-10-22 PIL

Beego接收json request时获取的body是空的解决

最近在学习vue,由于之前做这个博客的后台比较简陋,顺势就把管理后台改用restful + vue的形式,重新改做,记录一下遇到的小问题。 后端用的是beego(golang), 前端网路请求库用的是axios。 beego做restful 路由很简单, 只需要一行route就可以把GET、POST、PUT、DELETE四个方法的路由都做好。 比如添加post的restful,四个请求方法的路由:

使用go-sitemap-generator为网站添加sitemap

go-sitemap-generator是一个golang的生成sitemap的包,利用它可以快速生成sitemap文件,及可以ping是搜索引擎,通知收录。 sitemap的意义 xml文件的sitemap更多的用途是,加快搜索引擎对网站的认识,把想要被收录的url放到sitemap里面,搜索引擎就能按照这些url去检索对应的网页。 通过之前的做站经验,sitemap.xml的存在,是有能够加快

Golang 2020-09-10 beego sitemap

wordpress网站如何添加文章阅读计数(非插件实现)

Wordpress程序做小网站很好用, 尤其是个人博客,拥有大量的主题和插件,就算不懂代码都能做出很漂亮的网站。 纯原生的Wordpress程序已经足够满足个人博客的使用,但有时可能由于某些使用习惯,或者需求,我们想计量每篇文章的阅读量。但这功能,Wordpress里面基础功能并没有包含。实现的途径,目前有很多, 大部分可以通过插件,或主题本身自带来实现。 出于学习的目的,通过以下例子,我们可以自

certbot指定nginx的配置目录

用certbot获取免费的ssl证书很是方便,很多时候直接一条命令,就可以获取好证书,并且设置好网站的配置已经自动更新的定时任务等等。 但如果nginx服务器不是用系统源安装(apt install),而是自己编译,或者用网上那些一键包安装工具安装的web环境,而且nginx的配置文件没有在默认的配置目录(/etc),用certbot就会出现问题。 因为它需要先读取网站的配置,知道有哪些域名(网站

Linux 2020-07-09 certbot nginx ssl

使用Docker安装mysql并开机启动

mysql的安装,无论是编译安装、从系统的软件源安装、官方二进制包的安装都有一定的设置步骤,如果只是简单的弄个开发环境,利用docker可以很简单地使用到mysql。 以下方法使用Docker安装mysql并设置开机启动,就像安装原生一样使用。 下载镜像 docker pull mysql:latest 运行mysql镜像,并映射到宿主机的3306端口。设置密码为123456 docker run

Docker 2020-05-28 mysql

Laravel用TNTSearch做内容搜索

情景前提 普通的sql where like 搜索的形式,不能满足于内容网站的搜索,需求要有分词功能,以便能更准确的找到需要展示的内容。 TNTSearch是一个php实现的轻量级全文索引引擎,可以满足一般网站的使用。 安装 composer reuquire vanry/laravel-scout-tntsearch 发布scout配置文件 php artisan vendor:publish

ubuntu用certbot为nginx网站申请免费https证书

1.通过ssh登陆服务器 通过ssh登陆正在运行HTTP服务的服务器,并且需求要有sudo权限。 2.添加Certbot的PPA 需要添加certbot的ppa到系统的软件源列表 sudo apt update sudo apt install software-properties-common sudo add-apt-repository universe sudo add-apt-repo

mysql用replace批量替换内容

replace方法 replace(字段名, 旧内容, 新内容) 具体用法: 批量替换内容中的 http 成 https update contents set value = replace(content, "http://", "https://");

Coding 2020-05-05 mysql 替换

samba共享用户home目录并解决windows访问没有权限的错误

可能在日常中经常使用到虚拟机做开发,但宿主机和虚拟机之间拷贝文件之类的操作太麻烦,其实我们可以安装samba并将home目录做共享,方便操作。 系统环境:ubuntu20.04 LTS 安装samba sudo apt install samba samba-common 配置文件 sudo /etc/samba/smb.conf samba 本身的配置已经有共享用户目录的配置,只需要将前面的注释

Linux 2020-04-29 samba 共享文件

hyper-v无法启动虚拟机 因为虚拟机监控程序未运行

问题:hyper-v无法启动虚拟机 因为虚拟机监控程序未运行 情况1:没开启硬件的虚拟化支持,表现为“Hyper-V虚拟机监控程序”无法安装 解决:进入BIOS开机虚拟化支持, 开机进入BIOS,找到 xxx virtual xxx 修改选择为enable,如果没找到,需要查对应主板的设置方法。开启后,在 “windows功能” 里面 Hyper-V虚拟机监控程序 就可以安装了, 安装后重启,即可

Windows 2020-04-29 hyper-v

Golang对中文字符串截取不出现乱码的方法

在使用golang的时候,如果直接对string截取,有可能接触出来的字符串最后是一个不能显示的乱码。 s := "中文字符串" fmt.Println(s[:4]) 这是因为对字符串的截取犹如是对btye(8bit)数组的截取,而中文是不止一个字节的,所以就造成截取一个字的一半。而无法显示 解决方法 转换成[]rune s := "中文字符串" s2 :=

Golang 2020-04-24 rune byte

150行python代码实现一个多路复用的SOCKS5代理服务器

学习socks5协议,使用python实现一个socks5代理服务器。 环境: windows10 python: 3.7 SOCKS5通讯流程 client(浏览器)发送: VER NMETHODS METHODS 1 1 1-255 VER是SOCKS版本,这里应该是0x05; NMETHODS是METHODS部分的长度; METHODS是客户端支持的认证方式列表,每个方法占1字节。当前的定义

Beego分页处理beego内置分页功能使用

这里说的分页是指大量数据显示时,每页固定数量数据的输出,即是cms中的列表页分页。 Beego已经有内置的分页功能,但文档里面没有详细说明, 具体的package在 github.com/astaxie/beego/utils/pagination 具体使用方法 先是导入上面的包, 然后在需要的地方新建一个paginator // Category 栏目页面 func (c *Blog) Cate

Golang 2020-04-24 beego