avatar
文章
179
标签
47
分类
46

首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于
Echin の 博客
搜索
首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于

Echin の 博客

Gorm初始
发表于2024-02-24|更新于2024-03-15|Gorm|Gorm
docker 生成** 1docker run --name today -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=pick -e MYSQL_USER=user -e MYSQL_PASSWORD=password -p 3307:3306 -d mysql:latest ​ 然后返回一堆字符串就是成功 Gorm初始化 结构体中的字段必须都为大写,这样子在迁移的时候才会形成相应的字段 1234567891011121314151617181920func init() { // gorm的连接 // 以后具体数据用 config获取 dsn := "user:password@tcp(localhost:3307)/pick?charset=utf8mb4&parseTime=True&loc=Local" var err error bb, err := gorm.Open(mysql.Open(dsn), &gorm.Config{ ...
casbin实现
发表于2024-02-23|更新于2024-02-23|casbin|casbin
​ 学习了之前的Casbin-model,就可以开始书写casbin的具体实现代码了,非常惭愧,昨天没有搓出博客,太懒了 思路​ 在我认知范围内,casbin的具体实现思路是 casbin 和 gorm.adapter的依赖下载后 准备 model 和 adapter 通过上面两个东西创建一个enforce 提前加入 role+data1+action 其他需要做的就是 添加项目时 将 user与role绑定 requre user 访问是否有相应的role policy 添加一些其他的有关policy的函数,查看,删除啥的 实践​ 具体代码的呈现肯定不是直接按思路来的,不过我这里就按思路呈现一下代码。 准备 model 和 adapter 123456789101112131415161718192021222324// 准备modelconst ( casModel = `[request_definition]r = sub, obj, act[policy_definition]p = sub, obj, act[role_definition]g = _, _[p ...
方法的使用
发表于2024-02-22|更新于2024-02-22|Go|Go
方法的Local-type 今天学习casbin的时候,因为受老板的代码形式的影响,想把最基本的代码封装开来,无意间对方法的使用有了新的理解 本来我以为方法就是函数,随便一个函数,只要在函数名前加个方法类型即可,后来才发现我忽略了一个细节 GPT回答: ​ 在Go语言中,方法的接收者类型必须是在同一个包内定义的命名类型(named type)。这意味着你无法在其他包中定义的类型上直接添加方法。如果你需要为非本地类型添加方法,你可以通过创建一个新的类型来包装它,然后为新类型添加方法。 版本一(最简单) 123456789101112131415161718192021222324func GenCasbin() { e, err := casbin.NewEnforcer("./casbin/model.conf", "./casbin/policy.csv") if err != nil { fmt.Println("NewEnforce err:", err) return } su ...
奖学金系统v4-3
发表于2024-02-22|更新于2024-02-25|flamego|flamego
今天做了文件接口迁移,说白了就是复制黏贴 很想记录一下项目的某个大功能的结构 123456789101112131415161718192021222324252627282930313233│ init.go│├─dao│ init.go│ project.go│├─dto│ project.go│├─handler│ project.go│ ├─model│ apply.go│ form.go│ project.go│ review.go│ rule.go│ workflow.go│├─router│ project.go│├─service│ ├─gw│ │ service.go│ ││ └─upload│ upload.go│└─utils utils.go internal/appproject dao 写一些数据库的操作和初始化 在这里写的是最底层的代码—基本CRUD的实现 下面有个很巧 ...
Casbin-model
发表于2024-02-21|更新于2024-02-21|casbin|casbin
在使用casbin之前,要理解他的model PERM元模型 单商户模型 多商户模型 PERM元模型 1234567891011[request_definition]r = sub, obj, act[policy_definition]p = sub, obj, act, (eft)[policy_effect]e = some(where (p.eft == allow))[matchers]m = r.sub == p.sub && r.obj == p.obj && r.act == p.act P [policy_definition] 策略 E [policy_effect] 效果 R [request_definition] 请求 M [matchers] 匹配 sub(subject)=请求实体 obj(object)=访问资源 act(action)=访问方法 (write,r ...
提交规范
发表于2024-02-20|更新于2024-02-20|git|git
常规提交 (conventionalcommits.org) 在git中提交,需要规范操作 feat: 用于新功能或特性的提交 fix: 用于修复 bug 的提交 docs: 用于文档的修改 **chore:**用于对构建过程或者辅助工具的修改 style: 用于代码样式(不影响代码含义的更改,比如空格、格式化等)的提交 refactor: 用于重构代码的提交 test: 用于添加缺失的测试或修正现有的测试的提交 perf: 用于性能优化的提交 build: 用于构建系统或外部依赖的修改 ci: 用于持续集成配置的修改 revert: 用于撤销先前的提交 具体格式: 12345<type>[optional scope]: <description>[optional body][optional footer(s)] 一般来说: 123feat : msg........fix : msg........chore : Update........
奖学金系统v4-2
发表于2024-02-20|更新于2024-02-25|flamego|flamego
老板让我手搓游标……………… 最后让老板帮我搓,反正我搓不出来…………… 游标实现 主要用于分页查询 目前主流的分页模式有两种——基于偏移量的分页和基于游标的分页。 基于偏移量的分页: 1SELECT * FROM metric_type WHERE type_name LIKE %name% ORDERBY id LIMIT offset,limit 客户端需要提供本次请求每页所需的结果数(limit)和偏移量(offset),偏移量通常由服务端通过page和size计算得出。这种分页方式十分简单,只需跳过前面Offset指定的结果数,按需返回Limit个结果数就可以了,它很容易与数据库查询语句对应。 你有100本书,每一页展示10本,那么基于偏移量的分页方式如下。 第一页:Offset:0, Limit:10 第二页:Offset:10, Limit:10 第三页:Offset:20, Limit:10 … 第十页:Offset:90, Limit:10 我们可以写出查询第二页图书的SQL: 1SELECT id, title FROM books ORDER BY id A ...
奖学金系统v4-1
发表于2024-02-19|更新于2024-02-19|flamego|flamego
给老板打打小工………… 需求 批量导入项目学生污点 实现要求 : 可以通过excel导入学生的成绩 可以通过学生的Id 可以通过学年-学期-班级导入(未实现) 同时需要实现 导入成绩是批量导入的,且每批学生都要有个batch,可以直接删除某批学生 当学生的id重复时,需要提醒老师是合并还是连接污点 APIfox接口 /project/{id}/user/batch form-data : 参数名 参数值 说明 file upload(excel) 上传excel文件 uploadType id/excel/class 分别对应三种上传形式 year – 学年 class – 班级 semester – 学期 coverType merge/cover 覆盖/添加 data [{“staff_id”:”55600”,”taints”:[“a”,”b”]},{“staff_id”:”300”,”taints”:[“a”,”b”]}] 学号+污点切片 Par ...
git
发表于2024-02-16|更新于2024-02-16|git|git
Git 操作 Modified 已修改/未修改 staged 暂存 commited 提交 工作区 暂存区 本地仓库 远程仓库 git bash快捷键 复制–Shift+insert 粘贴–Ctrl+insert 创建仓库1git init 克隆仓库1git clone url 暂存区 添加 123git add . #添加全部git add fileName #添加特定的文件 git add *.type #添加特定的类型文件 删除(未修改) 123git rm --cache fileName #从暂存区中删除git rm --cache -f fileName #强制从暂存区中删除git reset #返回到上一次的暂存状态+也可以撤销提交 删除(已修改) 12git restore --staged fileName #将暂存区的修改重新放回工作区git restore fileName #丢弃工作区的修改 提交至本地仓库12git commit -m "comm ...
redis开篇
发表于2024-02-15|更新于2024-04-05|Redis|Redis
Redis是一个key-value的数据库,key一般是String类型,value的类型很多 用途 数据库 缓存系统 消息队列 不要把他看作简单的数据库,而是根据实际应用的需求去使用 对数据库操作redis 有16个数据库,默认使用0号数据库 12# 切换数据库 3 select 3 一些常见的数据库指令 12345# 获取当前数据库的大小DBSIZE # 0 # 若给他输入一个值set name qinDBSIZE # output : 1 123# 查看所有的 key keys * # output name -- 因为上面我set了一个name 1234567# 清空# 清空当前库flushdb#清空所有库flushall redis 单线程Redis是基于内存操作的,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络的带宽 既然可以使用单线程来实现,就使用了单线程 为什么Redis单线程还这么快 误区1: ​ >高性能的服务器一定是多线程的 误区2: ​ > 多线程(CPU上下文会切换)一定比单线程效率高 一般来说速度: CP ...
1…121314…18
avatar
Echin-h
keep learning
文章
179
标签
47
分类
46
Follow Me
公告
love is accumulated, not love, too.
最新文章
北京租房2025-07-21
Linux命令补充2025-02-27
非唯一索引加锁规则实操2025-02-19
sls日志接入2025-01-18
操作系统概论2024-12-08
分类
  • CD/CI1
  • CI/CD1
  • Gin10
  • Go26
  • Gorm9
  • JAVA2
  • Linux4
  • MQ1
标签
flamgo CI/CD 简历 代码随想录 ngrok casbin 分布式锁 配置文件 Go 八股文 CD/CI JAVA语法 oauth Gin git vim rpc none NX青训营 flamego 设计模式 Linux docker JWT pinnacle 我爱记单词 sls 计算机网络 博客 Mysql MQ 前端 北京北京 随笔 Gorm 设计原则 k8s 算法 Session 图解HTTP
归档
  • 七月 20251
  • 二月 20252
  • 一月 20251
  • 十二月 20243
  • 十一月 20243
  • 十月 20248
  • 九月 20249
  • 八月 20246
网站资讯
文章数目 :
179
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Echin-h
框架 Hexo|主题 Butterfly
today is a beautiful day
搜索