![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
beego
磨镜台
牢骚太盛防肠断,风物长宜放眼量。
展开
-
beego MVC
MVC的作用Model 模型 处理数据有关内容View 视图 页面:htmlController 控制器 链接Model和ViewMVC工作流程1.浏览器发起请求2.控制器收到请求,找Model拿数据3.控制器拿到数据之后,把数据传递给View4.View拿到数据构造页面,返回给控制器5.控制器拿到页面,把页面返回给浏览器,在浏览器展示目的:结构清晰,解耦合控制器的作用1....原创 2019-04-29 21:27:56 · 353 阅读 · 0 评论 -
orm过滤器Filter
查询GoodsSKU表中的名字包含只狼游戏的字段o.QueryTable("GoodsSKU").Filter("Name__contains", “只狼游戏”)下表为Filter的操作符操作符作用exact/iexact判断指定的字段是否等于第二个参数的值contains/icontains判断指定的字段是否包含第二个参数的值gt / gte判断指定的...原创 2019-05-16 15:02:06 · 1857 阅读 · 1 评论 -
beego中使用事务
开始事务o := orm.NewOrm()o.begin()回滚o.rollback()提交事务o.Commit()原创 2019-05-20 15:56:52 · 2820 阅读 · 1 评论 -
模型定义
对象与表名默认的表名规则,使用驼峰转蛇形:AuthUser -> auth_userAuth_User -> auth__userDB_AuthUser -> d_b__auth_user除开头大写字母除外,遇到大写会增加_,原名称中的下划线保留设置参数多个设置间使用;分割。设置的值如果是多个,使用,分割。`orm:"null;rel(fk)"`nullN...原创 2019-05-07 20:54:02 · 577 阅读 · 0 评论 -
乐观锁、悲观锁
悲观锁,是读写锁:高并发网站不用乐观锁:不加锁而使用标识记录新旧数据,来识别数据是否变化。一般常用。原创 2019-05-20 12:28:46 · 217 阅读 · 0 评论 -
多表操作
表与表是多对一关系:查询从表查询:表与表是多对一关系时,外键所在表查询要使用RelatedSel()函数o.QueryTable("post").Filter("User", 1).RelatedSel("user").All(&posts)主表查询o.QueryTable("user").Filter("Post__Title", "The Title").Limit(1)....原创 2019-05-07 17:10:15 · 348 阅读 · 0 评论 -
go模板语法
go模板语法循环语法循环语法1:点在这里含义被改变了,表示循环遍历value值,想获取后台数据,可使用$.名字{{.range users}} {{.Name}}{{end}}循环语法2:{{range $key, $val := .s}}{{$key}}{{$val}}{{end}}条件判断语法:{{if compare .Name "狼"}} 出现了{...原创 2019-05-07 10:16:09 · 857 阅读 · 1 评论 -
页面布局layout
将重复的view页面复用页面布局layout使用流程先有个外部框架把页面重复部分删掉把框和主页面结合起来控制器的设置:渲染this.Layout = "框.html"this.TplName = "嵌入内容.html"在layout框中指定嵌入内容的位置{{.LayoutContent}}嵌入的内容<div class="main_body" id="main...原创 2019-05-06 21:29:33 · 1405 阅读 · 0 评论 -
解决非英文cookie存储问题
解决非英文cookie的存储问题存储给userName加密,使用base64算法//给userName加密enc := base64.StdEncoding.EncodeToString([]byte(userName))this.Ctx.SetCookie("userName",enc,60)取出给userName解密,使用base64算法userName := this.Ct...原创 2019-05-06 20:56:19 · 141 阅读 · 0 评论 -
路由过滤器
过滤器函数beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)pattern路由规则,支持正则position有5个固定参数,BeforeExec找到路由之后,开始执行相应的Controller之前filter 函数 类型为type FilterFunc func(*cont...原创 2019-05-06 20:26:17 · 566 阅读 · 0 评论 -
Cookie和Session
Cookie和Session作用:在一定时间内存储用户信息Cookie存储在浏览器,安全性相对低Session是存储在服务器中的,安全性相对高区别一:存储位置不一样区别二:生命周期不一样cookie可以设置时间临时session:当浏览器关闭的时候cookie的增删改查Context:上下文,主要做的是前后端通信的内容增加,修改:this.Ctx.SetCookie()查询:...原创 2019-05-06 20:06:29 · 54 阅读 · 0 评论 -
多表创建
一对多创建在多的一方注意类型ArticleType *ArticleType `orm:"rel(fk)"`在一的一方注意切片类型Article []*Article `orm:"reverse(many)"`多对多创建在一方注意切片类型Users []*User `orm:"rel(m2m)"`在另一方注意切片类型Articles []*Article `orm:...原创 2019-05-05 21:44:05 · 88 阅读 · 0 评论 -
视图函数
视图函数场景: 需要在html中做运算,需要用视图函数视图函数使用流程在视图中定义函数名{{nextPage .pageNum .pageCount}}在go中写函数函数参数要和视图函数参数类型保持一致//视图函数 前一页func PrePage(pageNum int) int { if pageNum <= 1 { return 1 } return ...原创 2019-05-05 21:34:07 · 204 阅读 · 0 评论 -
beego简单分页
QuerySeter 中用于描述字段和 sql 操作符分页流程获取所有文章数据获取总条数设置每页的条数获取当前页码获取分页数据返回数据获取所有文章数据o := orm.NewOrm()qs := o.QueryTable("Article")获取总条数count, _ := qs.Count()设置每页的条数pageSetNum := 2总页数和当前页码/...原创 2019-05-05 20:48:32 · 2653 阅读 · 0 评论 -
业务操作
业务操作请求->路由->控制器->页面业务处理流程获取数据校验数据操作数据库返回结果以注册为例://获取数据:账号和密码user := c.GetString("user")pwd := c.GetString("pwd")//检验数据:账号和密码的格式是否正确if user == "" || pwd == "" { c.TplName = "reg...原创 2019-04-29 21:49:40 · 197 阅读 · 0 评论 -
orm基本操作
ORM框架 Object Relation Mapping对象关系映射作用:不通过SQL语句来操作关系型数据库表可以通过结构体对象生成相对应的关系型数据库表建表的时候必须有主键,如果没有主动设置主键,自动设置ID,类型为int为主键ORM插入操作创建orm对象创建插入对象给插入对象赋值插入// 创建orm对象o := orm.NewOrm()// 创建插入对象s...原创 2019-04-29 21:31:31 · 655 阅读 · 0 评论 -
beego路由用法
beego路由用法1.默认的get请求对应Get方法,post请求对应Post方法beego.Router("/", &controllers.MainController{})2.给请求指定自定义方法,默认方法将失效beego.Router("/login", &controllers.MyController{}, "get:Login;post:Register")...原创 2019-04-29 21:31:08 · 1487 阅读 · 0 评论 -
隐藏域传值
<input value="{{.article.Id}}" name="id" hidden="hidden">原创 2019-05-12 13:55:09 · 1142 阅读 · 0 评论