golang gin框架搭建web端blog(2)

本文介绍了如何使用Golang Gin框架来搭建web端博客,主要内容包括根据标签或分类获取所有文章的API实现,以及如何获取某篇文章的详细信息。通过解析前端传来的URL参数,结合MySQL数据库操作,实现了数据的查询和返回。
摘要由CSDN通过智能技术生成

2、根据标签/分类获取所有文章

ru.GET("/:slug", views.Html.Index)
​
//http://localhost:8008/c/1 后面这个1是分类的id我们当成参数就行
ru.GET("/c/:id", views.Html.Category)

前端输入的url中携带参数,首先使用gin的context获取请求的上下文环境,进行前端参数的绑定,

func (*HTMLApi) Category(c *gin.Context) {
   cidStr := c.Param("id")
   cid, err := strconv.Atoi(cidStr)
   if err != nil {
      log.Println("获取传输的id出错")
      c.HTML(200, "category.html", errors.New("分类id查询错误"))
      return
   }
   //获取表单
   pageStr := c.Param("page")
   page := 1
   if pageStr != "" {
      page, _ = strconv.Atoi(pageStr)
   }
   //每页显示的数量
   pageSize := 10
   //去数据库获取需要的数据
   categoryResponse, err := service.GetpostByCategoryId(cid, page, pageSize)
   if err != nil {
      c.HTML(http.StatusOK, "category.html", err)

      return
   }
   c.HTML(http.StatusOK, "category.html", categoryResponse)
}

service.GetpostByCategoryId(cid, page, pageSize)函数用返回响应,

func GetpostByCategoryId(cid, page, pageSize int) (*models.CategoryResponse, error) {
   categorys, err := dao.GetAllCategory()

   if err != nil {
      log.Println(err)
      return nil, err

   }
   var postMores []models.PostMore
   posts, err := dao.GetPostPageByCategory(cid, page, pageSize)

   for _, post := range posts {
      categoryName, err :=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值