分类下相关文章
2020-06-03 · 阅读 10154 · 字数 261
正在用的 golang 三方库 GoAdmin,发现有个时间区间组件的 bug。 时间组件无法切换 中文 locale 过滤功能无效。目前猜测是 locale 问题导致的日期格式问题 想自己调试一下看看能否解决。 但是如何调试呢? 首先,我是想直接修改 GOPATH/src 下的代码,然后重新编译。但是发现 > ls $GOPATH/src/github.com/GoAdminGroup/ 是空的。。。 解决方法 使用 go mod 替换源的方式: go mod edit -replace github.com/GoAdminGroup/go-admin=/home/zhongwe ...
2020-05-30 · 阅读 9014 · 字数 492
由于接手了一个年久失修的网站,其网页的标题,keyword,description 异常混乱,很多页面的标题都是相同的,或者非常长,填充了大量冗余的关键词。 网站的板块,独立页非常多,完全靠检查代码,或者检查页面,很难找全所有有问题的页面。 为了快速找出有问题的页面,我决定用 golang colly 写个爬虫,自动检测全站的标题等 SEO 设置。 hello world, colly 以豆瓣网站为例: package main import ( "fmt" "github.com/gocolly/colly" "github.com/ ...
2020-05-29 · 阅读 14088 · 字数 375
我之前一直对 go install 干了些什么不太了解。甚至分不清 go get 与 go install 的区别。 最近 golang 代码写的多了,接触的三方库多了,发现 go install 确实非常方便。 例如,GoAdmin 可以通过 go install github.com/GoAdminGroup/go-admin/adm 来安装一个 adm 工具,之后就可以通过 adm 命令来自动生成一些数据表相关的代码。类似 php artisan。 除了安装一些三方工具,我发现还可以来安装一些自己用 golang 写的小工具。 全局安装自己写的工具 例如,我写了一个导入日志的小工具 i ...
2020-05-29 · 阅读 3857 · 字数 62
例如,我想用 golang 读取命令行传入的文件名,可以直接使用 os.Args。 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) if len(os.Args) != 2 { fmt.Println("请输入文件名") return } fmt.Println(os.Args[1]) } 运行测试 > ./test baidu-realtime.csv [./test baidu-realtime.csv] ...
2020-05-28 · 阅读 27561 · 字数 515
真实需求场景 例如,我在写一个分析百度统计实时访客历史记录的系统,其包含的基本模块: 一个 GoAdmin 写的 Web 管理后台服务 一个 CSV 数据文件导入 MySQL 的命令 测试项目根目录下是否可以共存两个 main 入口程序 先不管网上的那些 golang 代码组织策略,单纯的测试一下是否可以在项目根目录下共存两个 main 入口程序。 测试方法: 既有的 import_log.go 中已经有一个 main 函数了 新建一个 main.go 文件,与 import_log.go 同属 package main,包含一个简单的 main 函数,输出 Hello world 运 ...
2020-05-27 · 阅读 6172 · 字数 304
在解析百度统计实时访客 csv 文件时,会遇到上次访问时间为空的情况。 pre_access_at := "" if strings.HasPrefix(record[13], "2") { pre_access_at = record[13] } 这样在执行 SQL insert 操作时,会报错: Error 1292: Incorrect datetime value: '' for column 'pre_access_at' at row 1 而 golang 中 string 类型并不能被赋值为 nil。 即便使用 time.Ti ...
2020-05-30 · 阅读 14681 · 字数 71
可以使用 golang 内置的 strings.HasSuffix 参数: 第一个参数是原字符串 第二个参数是结尾字符串 package main import ( "fmt" "strings" ) func main() { b := strings.HasSuffix("103s", "s") fmt.Println(b) // true b2 := strings.HasSuffix("103s", "golang") fmt.Pri ...
2020-06-15 · 阅读 20772 · 字数 289
从百度统计后台导出并下载了实时访客的 CSV 文件。想本地解析一下,并导入到 MySQL 中做备份,因为百度统计只能保留两个周的历史数据,且上限为5000条。 golang 解析 csv 代码 这里用到了 golang 内置的 "encoding/csv" 库,能自动读取一行 csv 数据,并返回 slice 类型的数据。 package main import ( "encoding/csv" "fmt" iconv "github.com/djimenez/iconv-go" "io&quo ...
2020-04-30 · 阅读 4734 · 字数 362
有一个历史悠久的服务,使用的是 MySQL 5.0 版本。我想用 GoAdmin 重写管理后台,但是 MySQL 又不敢停机升级。发布之后,运行报错: panic: Error 1115: Unknown character set: 'utf8mb4' goroutine 1 [running]: github.com/GoAdminGroup/go-admin/modules/db.(*Mysql).InitDB.func1() /home/zhongwei/golang/pkg/mod/github.com/!go!admin!group/go-admin@v1.2.9 ...
2020-04-29 · 阅读 5092 · 字数 132
使用 GoAdmin 管理新建的分类表 category 的 CRUD 时,报错: Error 1054: Unknown column 'category.id' in 'field list' 而 category 的主键,没有使用默认的 id,而是自定义了一个名 c_id. 解决方法 替换生成的代码中的 categoryTable := table.NewDefaultTable(table.DefaultConfigWithDriver("mysql")) 为 categoryTable := table.NewDefaultTable(table.Confi ...
2020-04-27 · 阅读 3868 · 字数 49
GoAdmin 常用的几种搜索过滤方式: 精确查找 适合 ID,订单号等。代码示例: info.AddField("Id", "id", db.Int).FieldFilterable() 部分匹配 适合关键词查找。代码示例: info.AddField("Name", "name", db.Varchar). FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}) ...
2020-04-27 · 阅读 7615 · 字数 96
在写 golang 代码时,遇到一行代码过长,于是,我习惯性地参照 PHP 的折行写法: info.AddField("Name", "name", db.Varchar) .FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike}) 但是 VIM 保存时,触发的 go fmt 报错: expected statement, found '.' 参考了一下 github 上开源项目的代码,原来逗点需要写在上一行。。。 info.AddField(" ...
2020-04-23 · 阅读 8234 · 字数 199
在 Golang Gin 写的后台程序加上 GoAdmin 之后,go build 生成的发布包体积已经达到了 30M 之巨。上传阿里云服务器,以 400K/s 的传输速度得上传1分钟。 30075408 网上找到一个解决方案,加上编译参数: go build -ldflags "-s -w" 体积减小到了 23M。 22778576 文件大小降幅大约四分之一。 编译参数 -s 的作用是去掉符号信息。去掉符号表,golang panic 时 stack trace 就看不到文件名及出错行号信息了。 -w 的作用是去掉 DWARF tables 调试信息。结果就是 ...
2022-06-10 · 阅读 22910 · 字数 71
在 golang gin controller 中使用 c.ClientIP() 获取请求的 IP,但是获取到的是 127.0.0.1. 估计是 Nginx 在转发请求给 golang 时,没有配置好。 解决方法 增加两行配置即可。 location /go/ { proxy_set_header X-Forward-For $remote_addr; proxy_set_header X-real-ip $remote_addr; proxy_pass http://127.0.0.1:8080/go/; } reload nginx,测试 ...
2020-04-23 · 阅读 7206 · 字数 470
从 Chrome Network 里看,GoAdmin 加载了很多大的静态资源文件,例如 all_2.min.js 有 1.2M 之大。 更严重的是,GoAdmin 没有对静态资源文件做缓存设置,导致每次用浏览器打开,都需要重新拉取一遍全量的静态资源文件。而我的服务器带宽只有 1M,下载速度非常缓慢。 可以对比参考 Google 首页的处理方式: 解决方法一: GoAdmin 后台设置 CDN,参考 http://doc.go-admin.cn/zh/admin/cdn/ 但是这种方法,我并不打算使用。原因是: 更新 CDN 文件麻烦。每次版本升级,都需要对应的更新 CDN 文件。 由 ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |