求助! 关于WEB分页

hellsam · · 2044 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

~~~ 求助 下面的代码是基于 数据输出渲染到HTML的 现在就是这个分页不太理解 在论坛找到个帖子分页的 不知道如何合并下面代码 测试了好久没有搞定 希望好心人能帮忙下 万分安歇 https://studygolang.com/articles/5689 ~~~ main.go ~~~ package main import ( "net/http" "database/sql" _ "github.com/go-sql-driver/mysql" // 包与你的不一样 "log" "html/template" ) func main() { http.HandleFunc("/", table) http.ListenAndServe(":8080", nil) } // 定义查询的数据结构体 type User struct { Id int64 Name string Age int Addr string } // table // 展示列表 func table(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() // 连接数据库 db, err := sql.Open("mysql", "root:root@/test?charset=utf8") if err != nil { log.Fatal(err) return } // 查询所有内容 sql := "SELECT id, name, age, addr FROM test" rows, err := db.Query(sql) if err != nil { log.Fatal(err) return } // 切片数据 data := make([]*User, 0) for rows.Next() { // 创建一个结构体 类似model user := &User{} // 将数据分别扫描进去 if err := rows.Scan(&user.Id, &user.Name, &user.Age, &user.Addr); err != nil { log.Fatal(err) return } // fmt.Println(user) // 将结果插入切片中 data = append(data, user) } //fmt.Println(data) // 传递到模板中 // 如果确认自己的路径正确的前提下,出现没有找到指定的模板文件的时候 // 记得在命令行执行 go run main.go tpl, err := template.ParseFiles("view/index.html") if err != nil { log.Fatal(err) return } tpl.Execute(w, data) } ~~~ index.html ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Table</title> <!-- 引入bootstrap --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"> <style> .main { margin: 50px 0; } .table { border: 1px solid #e8e8e8; } </style> </head> <body> <div class="row main"> <div class="col-sm-offset-3 col-sm-6"> <table class="table"> <thead> <tr> <th>序号</th> <th>ID</th> <th>名称</th> <th>年龄</th> <th>地址</th> </tr> </thead> <tbody> <!-- 遍历 这个.就代表了那个data --> {{range $k, $v := .}} <tr> <!-- 这里的k 还有点瑕疵 + 1失败了 --> <th scope="row">{{$k}}</th> <td>{{$v.Id}}</td> <td>{{$v.Name}}</td> <td>{{$v.Age}}</td> <td>@{{$v.Addr}}</td> </tr> {{end}} </tbody> </table> </div> </div> </body> </html> ~~~ SQL ~~~ CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `addr` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 INSERT INTO `test` (`id`, `name`, `age`, `addr`) VALUES (1, '张三', 22, '北京市朝阳区'), (2, '李四', 25, '天津市滨海新区'); ~~~

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2044 次点击  
加入收藏 微博
14 回复  |  直到 2017-11-24 02:27:09
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传