go语言学习笔记

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}) }
上一篇 下一篇

猜你喜欢

热点阅读