控制器
userController.go 文件名
package admin
法1:
type UserController struct{
BaseController
}
func (con UserController) Add(c *gin.Context){
c.String(200,"Jack")
}
//路由里面
法1
r.GET("/user/add",admin.UserController{}.Add)
法2:
func UserAdd(c *gin.Context){
c.String(200,"Jack")
}
//路由里面
r.GET("/user/add",admin.UserAdd)
定义基类
type BaseController struct{}
func (con BaseController) success(c *gin.Context) {
c.String(http.StatusOk,"文章列表~~")
con.success(c)
}
func (con BaseController) error(c *gin.Context) {
c.String(http.StatusOk,"文章列表~~")
con.error(c)
}
type UserController struct{
BaseController
}
func (con UserController) Add(c *gin.Context){
con.success("成功")
}
Session
安装
go install github.com/gin-contrib/sessions
在main函数里,设置存储引擎
//cookie引擎
store:=cookie.NewStore([]byte("secret"))
//redis 引擎
sotre:= redis.NewStore(10,"tcp","localhost:6379","",[]byte("secret"))
r.Use(sessions.Sessions("mysession",store))
session:=sessions.Default()
session.Set("username","张三111")
session.Get("username")
session.Save() //必须调用
//分布式session
把session 放在redis里
设置过期时间
session.Options(sessions.Options{
MaxAge: 3600 * 6
})
GORM
是golang的一个orm框架,object relation map 对象关系映射
安装
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
models下的User
type User struct {
Id int
User string
Age int `gorm:"default:18"` //默认值18
Email string
AddTime int
DeletedAt gorm.DeletedAt //开启软删除
}
user := models.User{}
//models.DB.Where("id IN ?", []int{1, 2}).Take(&user)
//models.DB.Find(&user) //对单个对象使用Find而不带limit,db.Find(&user)将会查询整个表并且只返回第一个对象,这是性能不高并且不确定的。
//models.DB.Last(&user) //按照id倒序
//models.DB.First(&user, 1) //where id=1
//models.DB.First(&user, "id=?", 2) //where id=2
//user1 := models.User{Id: 3}
//models.DB.Find(&user1)
//models.DB.Find(&user, []int{1, 2, 3}) //where id in 123
//
//models.DB.Where("Id=?", "1").Find(&user)
//models.DB.Where(&models.User{User: "le0", Age: 0}).First(&user) //因为年龄是0 所以不查询 条件只有 where user="le0"
//models.DB.Where(&models.User{User: "le0"}, "Age").First(&user) //因为年龄是0 所以不查询 条件只有 where user="le0"
//models.DB.Where(map[string]interface{}{"User": "lee4", "Age": 0}).Find(&user) //where user=le0 and age=0
//
//models.DB.Where([]int64{2, 3, 4}).Find(&user) //where id in 2 3 4
//
//models.DB.Not("user=?", "le0").First(&user) //where not user=le0
//
//models.DB.Not([]int{1, 2, 3, 4}).First(&user) //where id not in (1,2,3,4)
//models.DB.Select("user", "age").First(&user) //select user,age from user
models.DB.Select([]string{"user", "age"}).First(&user) //select user,age from user