github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/blogweb_gin/controllers/add_article_controller.go (about) 1 package controllers 2 3 import ( 4 "github.com/gin-contrib/sessions" 5 "github.com/gin-gonic/gin" 6 "github.com/qiuhoude/go-web/blogweb_gin/logs" 7 "github.com/qiuhoude/go-web/blogweb_gin/models" 8 "net/http" 9 "time" 10 ) 11 12 /* 13 当访问/add路径的时候回触发AddArticleGet方法 14 响应的页面是通过HTML 15 */ 16 func AddArticleGet(c *gin.Context) { 17 18 //获取session 19 islogin := GetSession(c) 20 21 c.HTML(http.StatusOK, "write_article.html", gin.H{"IsLogin": islogin}) 22 } 23 24 func AddArticlePost(c *gin.Context) { 25 26 session := sessions.Default(c) 27 loginuser := session.Get(SessionStoreKey).(string) 28 //获取浏览器传输的数据,通过表单的name属性获取值 29 //获取表单信息 30 title := c.PostForm("title") 31 tags := c.PostForm("tags") 32 short := c.PostForm("short") 33 content := c.PostForm("content") 34 logs.Info.Printf("title:%s,tags:%s\n", title, tags) 35 36 //实例化model,将它出入到数据库中 37 38 art := models.Article{0, title, tags, short, content, loginuser, time.Now().Unix()} 39 _, err := models.AddArticle(art) 40 41 //返回数据给浏览器 42 response := gin.H{} 43 if err == nil { 44 //无误 45 response = gin.H{"code": 1, "message": "ok"} 46 } else { 47 response = gin.H{"code": 0, "message": "error"} 48 } 49 50 c.JSON(http.StatusOK, response) 51 52 }