189-session操作和m2m操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/85616278





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





猜你喜欢

转载自blog.csdn.net/qq_33781658/article/details/85616278
M2M
今日推荐