<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
o := orm.NewOrm() qs := o.QueryTable("Article") 12
count, _ := qs.Count() 1
pageSetNum := 2 1
// 總頁數 pageCount := math.Ceil((float64(count) / float64(pageSetNum))) // 獲取當前頁碼 pageNum, err := this.GetInt("pageNum") if err != nil { pageNum = 1 } 1234567
//儲存分頁資料的切片 articles := new([]models.Article) //獲取分頁資料 qs.Limit(pageSetNum, pageSetNum*(pageNum - 1)).All(articles) 1234
beego.Info(*articles) this.Data["articles"] = *articles this.Data["count"] = count this.Data["pageCount"] = pageCount this.Data["pageNum"] = pageNum this.TplName = "index.html"
package utils import ( "github.com/astaxie/beego" "github.com/astaxie/beego/context" "github.com/astaxie/beego/logs" "github.com/ulule/limiter" "github.com/ulule/limiter/v3" "github.com/ulule/limiter/v3/drivers/store/memory" "net/http" "strings" ) // RateLimiter this is a struct type RateLimiter struct { Limiter *limiter.Limiter Username string UserType string UserToken string RemainTimes int MaxTimes int } func RateLimit(rateLimit *RateLimiter, ctx *context.Context) { var ( limiterCtx limiter.Context err error req = ctx.Request ) opt := limiter.Options{ IPv4Mask: limiter.DefaultIPv4Mask, IPv6Mask: limiter.DefaultIPv6Mask, TrustForwardHeader: false, } ip := limiter.GetIP(req, opt) if strings.HasPrefix(ctx.Input.URL(), "/") { limiterCtx, err = rateLimit.Limiter.Get(req.Context(), ip.String()) } else { logs.Info("The api request is not track ") } if err != nil { ctx.Abort(http.StatusInternalServerError, err.Error()) return } if limiterCtx.Reached { logs.Debug("Too Many Requests from %s on %s", ip, ctx.Input.URL()) // refer to https://beego.me/docs/mvc/controller/errors.md for error handling ctx.Abort(http.StatusTooManyRequests, "429") return } } func PanicError(e error) { if e != nil { panic(e) } } func RunRate() { // 限制每秒登入的請求次數 theRateLimit := &RateLimiter{} // 100 reqs/second: "100-S" "100-s" loginMaxRate := beego.AppConfig.String("total_rule::reqrate") loginRate, err := limiter.NewRateFromFormatted(loginMaxRate + "-s") PanicError(err) theRateLimit.Limiter = limiter.New(memory.NewStore(), loginRate) beego.InsertFilter("/*", beego.BeforeRouter, func(ctx *context.Context) { RateLimit(theRateLimit, ctx) }, true) }
在main.go 裡面呼叫方法即可
以上就是go語言beego框架分頁器操作及介面頻率限制範例的詳細內容,更多關於go beego框架分頁器操作介面頻率限制的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45