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  }