ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### GoWeb开发实战Gin框架】微博项目实战-删除文章功能 # 删除文章 当用户登录后,是可以有删除功能的,点击删除,就可以删除一篇文章。 删除就不需要view页面了,直接弹框确认即可,所以我们来实现model和controller部分。 ## 一、Model 在article\_model.go文件中,添加 删除文章的方法: ~~~go //----------删除文章--------- func DeleteArticle(artID int) (int64, error) { i, err := deleteArticleWithArtId(artID) SetArticleRowsNum() return i, err } func deleteArticleWithArtId(artID int) (int64, error) { return utils.ModifyDB("delete from article where id=?", artID) } ~~~ 删除的时候,肯定是根据文章的ID来删除,当点击删除按钮的时候,可以传过来文章ID。 ~~~html {{if .IsLogin}} <div class="home-block-item-udpate"> <a href='javascript:if(confirm("确定删除吗?")){location="{{.DeleteLink}}}"}'>删除</a> <a href={{.UpdateLink}}>修改</a> </div> {{end}} ~~~ ## 二、Controller 接下来,我们实现controller部分,在controllers目录下,创建一个新的go文件:delete\_article\_controller.go ~~~go package controllers import ( "fmt" "myblogweb/models" "log" ) type DeleteArticleController struct { BaseController } //点击删除后重定向到首页 func (this *DeleteArticleController) Get() { artID, _ := this.GetInt("id") fmt.Println("删除 id:", artID) _, err := models.DeleteArticle(artID) if err != nil { log.Println(err) } this.Redirect("/", 302) } ~~~ 先接收要删除的文章ID,然后操作sql语句进行删除数据,自后重定向到首页上。 然后注册个新的路由: ~~~go // 删除文章 beego.Router("/article/update", &controllers.DeleteArticleController{}) ~~~ ## 三、运行 重启项目后,打开浏览器输入:[http://127.0.0.1:8081/,并且要登录,才能有删除功能](http://127.0.0.1:8081/%EF%BC%8C%E5%B9%B6%E4%B8%94%E8%A6%81%E7%99%BB%E5%BD%95%EF%BC%8C%E6%89%8D%E8%83%BD%E6%9C%89%E5%88%A0%E9%99%A4%E5%8A%9F%E8%83%BD)。 ![gin_yunxing66](http://image.chaindesk.cn/gin_yunxing66.png/mark) 我们删除第一篇文章,点击删除按钮。然后弹出确认框,选择确定。就会删除第一篇文章。然后跳转到首页。 ![gin_yunxing67](http://image.chaindesk.cn/gin_yunxing67.png/mark) 我们发现首页已经没有第一篇文章了,此时也可以查询一下数据库: ![gin_yunxing68](http://image.chaindesk.cn/gin_yunxing68.png/mark) 我们发现数据库中id为1的文章已经被删除。