gin使用
2018-04-12 本文已影响69人
Ugly_K
gin使用
1.创建一个最基本的服务器
router := gin.Default()
//确定模板文件的路径
router.LoadHTMLGlob("./src/template/*")
router.GET("/", home)
groupSpider := router.Group("/spider/") groupSpider.GET("/:type/:index", getData) groupSpider.GET("/:type/", getData)
groupBili := router.Group("/bili/")
groupBili.GET("/query", biliQuery)
groupBili.POST("/query", biliQuery)
router.GET("/echo", chat.Echo)
router.Run(":8080")
2.实现home方法
func home(c *gin.Context) {
//跳转到`/spider/huxiu`路由
c.Redirect(http.StatusMovedPermanently, "/spider/huxiu")
}
3.实现getData方法
//根据请求参数获取数据
func getData(c *gin.Context) {
//获取url请求中的参数:map解析方式
pageType := c.Param("type")
pageIndex := c.Param("index")
//str转int
index, err := strconv.Atoi(pageIndex)
//根据解析的index来确定分页获取数据
if err != nil {
if pageIndex == "prev" {
if mapIndex[pageType] > 0 {
index = mapIndex[pageType] - 1
} else {
index = 0
}
} else if pageIndex == "next" {
index = mapIndex[pageType] + 1
} else {
index = 0
}
}
mapIndex[c.Param("type")] = index
//从modle中获取数据
news, err := modle.GetDataFromRedis(pageType, (index)*20, 20)
//如果获取失败的话就返回错误好了
if err != nil {
c.JSON(http.StatusOK, gin.H{`error`: 1, `data`: ``})
}
/**
1.返回模板文件
2.向模板文件中写入数据
*/
c.HTML(http.StatusOK, "news.html", gin.H{"news": news, "type": pageType}) }