【Golang】gin框架中间件的实现代码阅读

中间件的作用 中间件的作用在于,可以对于多个不同的请求,都应用某些同样的代码,做到可以复用代码的用途。例如,登陆、日志等等。 gin的中间件 gin的中间件,在gin里面是一个HandlerFunc,实际上跟路由的处理函数是一样的,一个中间件,即是一个带 *gin.Context 参数的函数。 gin中间件可以处理在路由函数前,也可以处理在路由函数后的事务。主要根据 c.Next() 在中间件中的

Golang 2020-11-09 gin 中间件

python-wordpress-xmlrpc 通过搜索关键字获取文章

wordpress是一套很强大的内容管理系统,并且有用xmlrpc的方式提供一些接口,可以用于站长的其它管理需求。 最近在做一些SEO实验性的网站,主要用wordpress搭建文章,然后有采集微信公众号的内容,再发布到网站上面。 本地采集、发布,均用的是python, python管理wordpress有一个包,叫 python-wordpress-xmlrpc 就用的是xmlrpc的方式调用wo

Python 2020-10-23 wordpress xmlrpc

用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里面基础功能并没有包含。实现的途径,目前有很多, 大部分可以通过插件,或主题本身自带来实现。 出于学习的目的,通过以下例子,我们可以自

Laravel用TNTSearch做内容搜索

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

mysql用replace批量替换内容

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

Coding 2020-05-05 mysql 替换

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

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

Golang 2020-04-25 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

Beego框架m2m关联中间表模型怎么自定义?

对于beego框架的orm,教程、文档上面的描述、例子不详尽。尽管上面又多对多模型的定义例子,但是那是对于新项目而言的,如果有那么个情况,是需要在现有的数据库(包含数据)的情况下开发,可能,文档上的例子就不能直接搬了。而在找了很多网页之后, 最终在beego框架本身的代码里面找到了例子。 github.com\astaxie\beego\orm\models_test.go 多对多关系,会需要有一

Golang 2020-04-24 beego

GoColly代理切换器的使用

Colly自带有代理切换的功能, 它能对每个http链接进行切换代理进行访问,可以避免一些由于同一地址访问速度过快而被ban的可能。 使用例子: package main import ( "github.com/gocolly/colly" "github.com/gocolly/colly/proxy" ) func main() { c := coll

Golang 2020-04-24 colly

GoColly的Collector配置方式

Colly 是一个可高度定制话的爬虫框架, 它提供了很多对其定制化的方式。 在代码中配置 创建一个默认的collector c1 := colly.NewCollector() 创建collector时,修改UA和revisit(多次访问同一个url) c2 := colly.NewCollector( colly.UserAgent("user agent"), colly.

Golang 2020-04-24 colly