Beego框架学习笔记04--Beego与多对多关系表数据操作

本文详细介绍了Beego框架中ORM的Read方法注意事项,强调了多表查询的惰性特性。讲解了如何处理session和cookie,包括设置、读取和删除操作。接着,文章深入探讨了Beego ORM对多对多关系表的插入和读取操作,以及视图循环和路由过滤器的使用。此外,还提到了视图模板的基本应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Beego Orm Read方法注意事项

使用orm根据指定字段去数据库中检索信息的时候,Read方法的第一个参数应当是【承载信息对象的指针】而不是承载信息对象。

...
o := orm.NewOrm()
var articleType models.ArticleType
articleType.TypeName = c.GetString("select")
//千万注意别写成o.Read(articleType, "TypeName")
o.Read(&articleType, "TypeName")

2.Beego Orm 多表查询的“惰性”

beego框架中orm工具的多表查询性质采用“惰性查询”。所谓的惰性查询就是:多表查询的时候如果不主动给定指令,就只能在当前表内进行查询操作,而不会自动去其他关联的表中进行查询操作。例如:

/*
  正常情况下
  去表中查询内容的时候直接使用.All()方法就能够完成检索。
  但是如果这个表与某个表形成了多对一的关系时,这个表中会自动被加入一个对应字段
  那么orm字段由于惰性查询的性质,就不会自动去查找另一个表中对应的信息。
*/
qs := o.QueryTable(“表1”);
qs.All(&查询表1结果容器)

/*
    因此针对这种情况beego框架的orm插件提供了一个关系索引函数relateSel()
    它能够在一对多关系表的查询操作中,用来指定查询时自动检索关联表中的信息
    例如下面的代码,假设表1中存在一个指向表2的外键
    那么relatedSel()函数由于参数设置了表2的名称,因此会在qs句柄执行的时候告知qs句柄
    去表2中自动检索与表1对应的信息。
*/
qs := o.QueryTable(“表1”);
qs.RelatedSel(“表2”).All(&查询表1结果容器)

3.Beego处理session和cookie

session和cookie都是在一定时间内信息的存储方式。这里指的cookie和前端的cookie指的是一个东西,但是session和前端中的sessionStorage却并不是相同的内容,尽管两者的性质也类似。http协议是一个无状态协议,因此请求之间无法进行数据交互。而为了使得请求之间可以进行数据传递提出了session和cookie的技术。需要特殊说明的一点是:Cookie不支持中文,所以如果存储中文需要base64.StdEncoding.EncodeToString()方法转换字符串再存储。ps:decodeString解密

  session cookie
存储位置 服务器端 客户端
安全性
生命周期 过期或主动删除后失效 过期或手动删除后失效
适用环境 登录状态等高安全系数数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值