现在我们要显示购物车界面,需要利用模板,将之前ajax传递到服务器中的数据显示在购物车界面上,这里我们将新添入一个环节,数据映射,用于界面数据映射到后台的存储结构,话不多说,现在就动手实践吧
0.url
http://www.redis.cn/
http://www.redis.cn/clients.html
http://www.redis.cn/clients.html#go
https://github.com/garyburd/redigo
https://github.com/gomodule/redigo
https://godoc.org/github.com/gomodule/redigo/redis
http://www.runoob.com/go/go-map.html
https://beego.me/docs/mvc/view/view.md
1.新知识点
1.redis数据转换
2.数据映射
用户购物车商品在数据库是哈希数据结构,在后台对应一个切片,切片的存储类型是字典
3.语法注意点
1.在控制其中,JSON数据和网页模板二选其一,也就是有c.Data["json"],c.ServeJSON;就没有c.TplName
2.切片在make创建的时候要指定长度
3.字典要通过make创建,才能使用如下方法赋值
4.intmap得到的切片中的字典是string,int类型;要在赋值给数据库对象的时候做类型转换
4.编程技巧
对于页面注释不明晰的情况下,可以在浏览器中,找到需要的元素,右键单击检查,找到对应代码的类名,在源代码中确定其位置
5.Bug
1.在条件控制语句中创建返回的数据会报错
2.创建字典报错!!!!!!!!(Go语言字典操作)
6.逻辑注意点
1.混淆购物车商品总价和单个商品总价
一.链接/路由
二.后端
1.设置返回的模板
2.获取用户登录状态(验证是否为空)
3.获取用户
4.建立Redis链接
5.关闭链接
6.根据用户id获取当前用户购物车列表
7.对购物车列表返回数据进行转换(包括错误处理)
8.定义切片用于保存购物车数据
9.遍历返回的购物车列表
9.1根据商品Id查询商品模型
9.2获取商品数量
9.3定义字典保存商品模型/数量/单品总价
9.4将数据保存到切片中
9.5累加商品总价
10.返回该用户商品列表
11.返回商品总价
三.前端
1.遍历商品列表
2.返回总价