GO Web编程---网上书店(4.1) 添加、删除、更新图书

本文介绍了使用GO语言进行Web编程,实现了网上书店的图书管理功能,包括删除、更新和新增图书的操作。在删除图书后重新加载页面,更新图书时根据ID获取并修改数据库记录,新增图书则共享更新操作代码,通过判断是否存在记录来决定是插入还是更新。这些功能的实现涉及路由、控制器和数据库交互,展示了Go语言进行Web开发的基本流程。
摘要由CSDN通过智能技术生成

上一篇讲了查询图书并且分页,那是在图书管理那里,那么我们接着讲图书的管理。

完成后项目结构

实现的功能如下:
在这里插入图片描述

1、删除图书

在bookhandler.go新加一个函数

//DeleteBook 删除图书
func DeleteBook(w http.ResponseWriter, r *http.Request) {
   
	//获取要删除的图书的id
	bookID := r.FormValue("bookId")
	//调用bookdao中删除图书的函数
	dao.DeleteBook(bookID)
	//调用GetBooks处理器函数再次查询一次数据库
	GetPageBooks(w, r)
}

代码的最后一行,在删除完一本图书之后,我们再调用上一篇讲的分页函数,这样重新显示该页面

在bookdao.go里新增删除图书DeleteBook()函数

//DeleteBook 根据图书的id从数据库中删除一本图书
func DeleteBook(bookID string) error {
   
	//写sql语句
	sqlStr := "delete from books where id = ?"
	//执行
	_, err := utils.Db.Exec(sqlStr, bookID)
	if err != nil {
   
		return err
	}
	return nil
}

也是非常的简单,调用sql语句就可以

2、更新图书

我们有专门更新图书的页面如下
在这里插入图片描述
只要在“修改”这个超链接,加上我们要用的信息

<td><a href="/toUpdateBookPage?bookId={
   {.ID}}">修改</a></td>

“/toUpdateBookPage?bookId={ {.ID}}”
1、需要在main中加入/toUpdateBookPage的路由,再进入控制器处理
2、?bookId={ {.ID}就是我们要获得的有用的信息了
我们可以根据book.ID来从数据库获得book对象,然后更新图书信息之后,可以重新写入数据库

//去更新图书的页面
	http.HandleFunc("/toUpdateBookPage", controller.ToUpdateBookPage)

之后再bookcontroller里的函数就可以这么写了,跳转到book_edit.html

//ToUpdateBookPage 去更新或者添加图书的页面
func ToUpdateBookPage(w http.ResponseWriter, r *http.Request) {
   
	//获取要更新的图书的id
	bookID := r.FormValue("bookId")
	//调用bookdao中获取图书的函数
	book, _ := dao.GetBookByID(bookID)
	if book.ID > 0 {
   
		//在更新图书
		//解析模板
		t := template.Must(template.ParseFiles("views/pages/manager/book_edit.html"))
		//执行
		t.Execute(w, book)
	} else {
   
		//在添加图书
		//解析模板
		t := template.Must(template.ParseFiles("views/pages/manager/book_edit.html"))
		//执行
		t.Execute(w, "")
	
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值