go

go


第十五单元(分页功能)

<h1>beego框架实现分页功能</h1> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=0bd350a4f210947d4f917129d86e6576&amp;file=file.png" alt="" /></p> <h2>一、定义路由</h2> <pre><code class="language-go">beego.Router("/user/list", &amp;controllers.UserController{}, "get:UserList") //分页</code></pre> <h2>二、定义控制器</h2> <pre><code class="language-go">//分页 func (this *UserController) UserList() {     o := orm.NewOrm()     qs := o.QueryTable("user")     count, _ := qs.Count() //总条数     pageSetNum := 2        //每页显示条数     pageCount := math.Ceil((float64(count) / float64(pageSetNum)))     //  获取当前页码     pageNum, err := this.GetInt("pageNum")     if err != nil {         pageNum = 1     } // ==========上一页和下一页 代码需要优化,有点low============ //     if pageNum &lt;= 1 {         pageNum = 1     }     pagePre := pageNum - 1     pageNext := pageNum + 1     if pageNum &gt;= int(pageCount) {         pageNum = int(pageCount)         pageNext = int(pageCount)     }     if pagePre &lt;= 1 {         pagePre = 1     }     //存储分页数据的切片     user := new([]models.User)     //获取分页数据     qs.Limit(pageSetNum, (pageNum-1)*pageSetNum).All(user)     //数字页码     var pages = make(map[int]int)     for i := 1; i &lt;= int(pageCount); i++ {         pages[i] = i + 1     }     beego.Info(*user)         this.Data["table_lis"] = *user     this.Data["count"] = count     this.Data["pageCount"] = pageCount     this.Data["pageNum"] = pageNum     this.Data["pagePre"] = pagePre     this.Data["pageNext"] = pageNext     this.Data["pages"] = pages     this.TplName = "user/index.html" } </code></pre>

页面列表

ITEM_HTML