beego 一种 MVC 架构的 web 框架,网上评价:设计繁复。优点:简单,国人开人,文档,资料多。
orm
-
支持 Go 的所有类型存储
-
轻松上手,采用简单的 CRUD 风格
-
自动 Join 关联表
-
跨数据库兼容查询
-
允许直接使用 SQL 查询/映射
-
严格完整的测试保证 ORM 的稳定与健壮
func init() {
// 注册数据库
orm.RegisterDataBase("default", "mysql", "root:root@/my_db?charset=utf8", 30)
// 创建数据库,第三个参数是是否检测数据库重复,报错
orm.RunSyncdb("default", false, true)
}
ORM 接口使用
var o Ormer
o = orm.NewOrm() // 创建一个 Ormer
// NewOrm 的同时会执行 orm.BootStrap (整个 app 只执行一次),用以验证模型之间的定义并缓存。
var r RawSeter
r = o.Raw("UPDATE user SET name = ? WHERE name = ?", "testing", "slene")
// Raw 函数,返回一个 RawSeter 用以对设置的 sql 语句和参数进行操作
}
context 模块
上下文模块主要是针对 HTTP 请求中,request 和 response 的进一步封装,他包括用户的输入和输出,用户的输入即为 request,context 模块中提供了 Input 对象进行解析,用户的输出即为 response,context 模块中提供了 Output 对象进行输出。
golang strconv 包
strconv 实现与基本数据类型的字符串表示形式的转换
package main
import (
"fmt"
"strconv"
)
func main() {
// ParseBool 将字符串转换为布尔值
fmt.Println(strconv.ParseBool("1")) // true
fmt.Println(strconv.ParseBool("TRue"))
// false strconv.ParseBool: parsing "TRue": invalid syntax
fmt.Println(strconv.ParseBool("0")) // false
fmt.Println(strconv.ParseBool("FALse"))
// false strconv.ParseBool: parsing "FAlse": invalid syntax
// FormatBool 将布尔值转换为字符串 "true" 或 "false"
fmt.Println(strconv.FormatBool(0 > 1)) // false
// ParseInt 将字符串转换为 int 类型
// Atoi 相当于 ParseInt(s, 10, 0)
// 通常使用这个函数,而不使用 ParseIn
fmt.Println(strconv.Atoi("2147483647"))
// 2147483647
fmt.Println(strconv.Atoi("2147483648"))
// 2147483647 strconv.ParseInt: parsing "2147483648": value out of range
// ParseFloat 将字符串转换为浮点数
s := "0.12345678901234567890"
f, err := strconv.ParseFloat(s, 32)
fmt.Println(f, err) // 0.12345679104328156
}
casbin
casbin 是一个用 Go 语言打造的轻量级开源访问控制框架,casbin 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。
casbin 的主要特性包括
- 支持自定义请求的格式,默认的请求格式为{subject, object, action};
- 具有访问控制模型 model 和策略 policy 两个核心概念;
- 支持 RBAC 中的多层角色继承,不止主体可以有角色,资源也可以具有角色;
- 支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源;
- 支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如/foo/***ar 可以映射到/foo;
casbin 不做的事情
-
身份认证 authentication(即验证用户的用户名、密码),casbin 只负责访问控制。应该有其他专门的组件负责身份认证,然后由 casbin 进行访问控制,二者是相互配合的关系;
-
管理用户列表或角色列表。casbin 认为由项目自身来管理用户、角色列表更为合适,casbin 假设所有策略和请求中出现的用户、角色、资源都是合法有效的。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于