1.models层
//分页
func ReadTopicByPage(isDesc bool,topics *[]Topic,pageNow int, pageSize int) (*[]Topic, error){
sql:="select * from topic limit ?,?"
_,err:=db.Raw(sql,(pageNow-1)*pageSize,pageSize).QueryRows(topics)
return topics,err
}
//获取pageCount
func GetPageCount(pageSize int) int{
var rowCount int
sql:="select count(*) from topic "
err:=db.Raw(sql).QueryRow(&rowCount)
if err!=nil{
log.Fatal(err)
}
if rowCount%pageSize==0{
return rowCount/pageSize
}else{
return (rowCount/pageSize)+1
}
}
2.controller层
pageSize:=3
pageNow,err:=c.GetInt("pageNow")
if err!=nil{
//log.Fatal(err)
pageNow=1
}
var topics []models.Topic
models.ReadTopicByPage(true,&topics,pageNow,pageSize)
/*for i,_:=range topics{
fmt.Println(topics[i].Id)
}*/
pageCount:=models.GetPageCount(pageSize)
//fmt.Println("pageCount:",pageCount)
//fmt.Println(topics1)
c.Data["pageCount"]=pageCount
c.Data["pageNow"]=pageNow
c.Data["topics"]=topics
c.TplName = "home.html"
3.view层
<div class="text-center">
{{if gt .pageNow 1}}
<a href="http://127.0.0.1:8081/?pageNow={{Add .pageNow -1}}">上一页</a>
{{else}}
<span>上一页</span>
{{end}}
{{if lt .pageNow .pageCount}}
<a href="http://127.0.0.1:8081/?pageNow={{Add .pageNow 1}}">下一页</a>
{{else}}
<span>下一页</span>
{{end}}
</div>
其中Add为模板函数
func Add(a int,b int) int{
return a+b
}
Beego.run之前添加函数映射
beego.AddFuncMap("Add",views.Add)
beego.Run()