189-session操作和m2m操作

30 篇文章 1 订阅





Cookie 和 session

作用:
一定时间内保存用户数据

存储位置不同
Cookie存储位置在客户端
session存储位置在服务器

第二个不同
生命周期不同
Cookie能够设置生存时间
当设置的时间一到的时候,就失效了

session是当浏览器关闭的时候
session就失效了


第三个不同
适用场景不同
Cookie 一般安全性要求不高的数据
session 安全性要求高的数据


//设置Cookie
//1.cookie的key
//2.cookie中存放的value
//3.设置生效时间
this.Ctx.SetCookie("username",username,3600*24)


func (this *UserController) ShowLogin(){
userName := 
}


<input type="text" value="{{.userName}}" >




在登录成功的时候,可以给session设置数据
在进入后台之前,需要查询一下
session有没有数据
如果有数据
说明是登录状态
如果没有数据
说明不是登录状态
调回到登录页面



this.SetSession("username",username);


func (this *UserController) Logout(){
	this.DelSession("userName")
	this.Redirect("/login",302)
}



最近浏览人
点击文章之后,添加数据

m2m := o.QueryM2M(&article, "Users")

var user models.User

userName := this.GetSession("userName")

user.UserName=userName.(string)

o.Read(&user,"UserName")

m2m.Add(user)

this.Data["article"]=article




再来一次

	//获取m2m操作对象
	m2m := o.QueryM2M(&article, "Users")

	//插入用户对象
	var user models.User
	userName := this.GetSession("userName")
	user.UserName = userName.(string)
	o.Read(&user, "UserName")

	//插入数据
	m2m.Add(user)





现在我们在展示页面的时候
要把最近浏览的user展示出来

//获取浏览记录
o.LoadRelated(&article,"Users")



还有第二种查询方法
qs := o.QueryTable("User")
qs.Filter("Users__User__UserName")

qs := o.QueryTable("User")
var users []models.User
qs.Filter("Articles__Article__Id",article.Id).Distinct().All(&users)

//数据传递给前端
this.Data["users"]=users





 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值