当前位置: 首页 > news >正文

免费网站建设平台 iis什么网站做效果图最多

免费网站建设平台 iis,什么网站做效果图最多,买网站多少钱,新浪微博登录网页版配置清除缓存 当进入前台首页时,会缓存对应的商品相关数据,这时,如果后台修改了商品的相关数据,缓存中的对应数据并没有随之发生改变,这时就需要需改对应的缓存数据,这里有两种方法: 方法一 在管理后台操作直接清除缓存中的所有数据,当再次访问前台首页时,就会先从数据库中获取… 配置清除缓存 当进入前台首页时,会缓存对应的商品相关数据,这时,如果后台修改了商品的相关数据,缓存中的对应数据并没有随之发生改变,这时就需要需改对应的缓存数据,这里有两种方法: 方法一 在管理后台操作直接清除缓存中的所有数据,当再次访问前台首页时,就会先从数据库中获取数据,然后缓存到redis中,代码如下: (1).界面 点击 清除缓存 按钮,直接清除缓存驱动中的所有数据 (2).增加 清除缓存 按钮 在templates/admin/main/index.html页面,增加 清除缓存 按钮 ul classnav navbar-nav navbar-rightlia欢迎您,{{.username}}/a/lilia href/admin/flushAll清除缓存/alia href/admin/loginOut安全退出/a/li /ul (3).增加路由 在routers/admin/adminRouter.go中增加 清除缓存 路由 adminRouters.GET(/flushAll, admin.MainController{}.FlushAll) (4).增加清除缓存方法 在controllers/admin/MainController.go中增加清除缓存的方法 //清除缓存 func (con MainController) FlushAll(c *gin.Context) {models.RedisCache.FlushAll()con.Success(c, 清除缓存成功, /admin) } 在models /redisCache.go中增加清除缓存方法 //清除缓存 func (r RedisCache) FlushAll() {if redisEnable {RedisDb.FlushAll(ctxRedis)} } 方法二 在管理后台修改商品相关数据时,就去修改对应的缓存数据,代码:略 2.分类页面数据展示 当从首页点击 商品分类,进入商品分类的 商品展示页面时,会存在和首页共同的 公共数据 顶部导航、中间导航、左侧分类,那么就可以把公共的代码分离出来,放到 基础控制器(BaseController.go)中,实现 代码的复用; 在商品分类的商品展示页面 展示分类的对应商品,以及 筛选对应分类的商品,和对商品进行 分页操作 1).界面 首页界面 商品分类对应的商品页面: 该页面和首页都有共同的 公共数据 顶部导航、中间导航、左侧分类 商品列表 2).代码展示 (1).html 拆分publibc/page_header.html,把中部导航代码单独成一个文件middle_nav.html index.html中增加 中部导航 代码 创建product/list.html商品页面文件 page_header.html 拆分publibc/page_header.html,把中部导航代码单独成一个文件middle_nav.html !-- 相当于给模板定义一个名字, define end 必须成对出现 -- {{ define frontend/public/page_header.html }}!DOCTYPE htmlhtmlheadmeta charsetUTF-8meta nameauthor contentorder by dede58.com/title小米商城/titlelink relstylesheet typetext/css href/static/frontend/css/style.csslink relstylesheet href/static/frontend/css/swiper.min.cssscript src/static/frontend/js/jquery-1.10.1.js/scriptscript src/static/frontend/js/swiper.min.js/scriptscript src/static/frontend/js/base.js /script/headbody!-- start header 顶部导航 --headerdiv classtop centerdiv classleft flul!--获取长度,并计算,看看是否显示最后的 | 画线--{{ $temp : .topNavList | len }}{{ $navLen : Sub $temp 1 }}{{range $key, $value : .topNavList}}lia href{{$value.Link}}{{if eq $value.IsOpennew 1 }} target_blank {{end}} {{$value.Title}}/a/li{{if lt $key $navLen}}li|/li{{end}}{{end}}div classclear/div/ul/divdiv classright frdiv classgouwuche fra href购物车/a/divdiv classfrullia href./login.html target_blank登录/a/lili|/lilia href./register.html target_blank 注册/a/lili|/lilia href消息通知/a/li/ul/divdiv classclear/div/divdiv classclear/div/div/header!--end header -- {{end}} list.html 创建product/list.html商品页面文件 {{ define frontend/public/middle_nav.html }}!-- 中间导航start banner_x --div classbanner_x centera href/ target_blankdiv classlogo fl/div/adiv classnav flul classclearfix idnav_listli classlink-categorya href#全部商品分类/adiv classbanner_y centerdiv classnavul{{range $key,$value : .goodsCateList}}li!--判断点击分类是否跳转到一个新的链接,如果不是,则跳转到对应的分类商品页面--{{if eq $value.Link }}a hrefcategory{{$value.Id}} target_blank{{$value.Title}}/a{{else}}a href{{$value.Link}} target_blank{{$value.Title}}/a{{end}}div classpopol classcate_list clear{{range $k,$v : $value.GoodsCateItems}}lidiv classxuangou_left{{if eq $v.Link }}a hrefcategory{{$v.Id}} target_blankclassclearfixdiv classimg flimgsrc{{$v.CateImg | FormatImg}}alt{{$v.Title}}/divspan classfl{{$v.Title}}/span/a{{else}}a href{{$v.Link}} target_blank classclearfixdiv classimg flimgsrc{{$v.CateImg | FormatImg}}alt{{$v.Title}}/divspan classfl{{$v.Title}}/span/a{{end}}/div/li{{end}}/ol/div/li{{end}}/ul/div/div/li{{range $key,$value : .middleNavList}}lia href# target_blank{{$value.Title}}/aol classchildren-list clearfix{{range $k,$v : $value.GoodsItems}}lia href#img src{{$v.GoodsImg | FormatImg}} alt{{$v.Title}}/p{{$v.Price}}元/p/a/li{{end}}/ol/li{{end}}/ul/divdiv classsearch frform action methodpostdiv classtext flinput typetext classshuru placeholder6nbsp;MIX现货/divdiv classsubmit flinput typesubmit classsousuo value搜索//divdiv classclear/div/formdiv classclear/div/div/div!-- end banner_x -- {{end}} index.html 商品首页增加 中部导航 代码, 因为page_header.html中的中部导航代码没有了,已经封装成middle_nav.html代码了,而首页的商品分类和商品页面的商品分类还有点区别,故不会导入public/middle_nav.html中的代码,所以会直接增加 中部导航 代码 {{ define frontend/index/index.html }}{{template frontend/public/page_header.html .}}!-- start banner_x 中部导航 --div classbanner_x centera href./index.html target_blankdiv classlogo fl/div/aa hrefdiv classad_top fl/div/adiv classnav flul classclearfix idnav_list{{range $key, $value : .middleNavList }}lia href{{$value.Link}} target_blank{{$value.Title}}/aol classchildren-list clearfix{{range $k, $v : $value.GoodsItems }}lia href#img src{{$v.GoodsImg | FormatImg }} /p{{$v.Price}}/p/a/li{{end}}/ol/li{{end}}/ul/divdiv classsearch frform action methodpostdiv classtext flinput typetext classshuru placeholder小米6nbsp;小米MIX现货/divdiv classsubmit flinput typesubmit classsousuo value搜索//divdiv classclear/div/formdiv classclear/div/div/div!-- end banner_x --!-- 商品分类 start banner_y --div classbanner_y centerdiv classnavul{{range $key, $value : .goodsCateList }}li{{if eq $value.Link }}a hrefcategory{{$value.Id}} target_blank{{$value.Title}}/a{{else}}a href{{$value.Link}} target_blank{{$value.Title}}/a{{end}}div classpopol classcate_list clear{{range $k, $v : $value.GoodsCateItems}}lidiv classxuangou_left{{if eq $v.Link }}a hrefcategory{{$v.Id}} target_blankclassclearfixdiv classimg flimgsrc{{$v.CateImg | FormatImg}}alt{{$v.Title}}/divspan classfl{{$v.Title}}/span/a{{else}}a href{{$v.Link}} target_blank classclearfixdiv classimg flimgsrc{{$v.CateImg | FormatImg}}alt{{$v.Title}}/divspan classfl{{$v.Title}}/span/a{{end}}/div/li{{end}}/ol/div/li{{end}}/ul/div!--轮播图--div classswiper-containerdiv classswiper-wrapper{{range $key, $value : .focusList}}div classswiper-slidea href{{$value.Link}} target_blankimg src{{$value.FocusImg | FormatImg}} alt{{$value.Title}} //a/div{{end}}/div!-- Add Arrows --div classswiper-button-next/divdiv classswiper-button-prev/div/div/div !-- 商品分类end --div classsub_banner centerdiv classsidebar fldiv classfla hrefimg src/static/frontend/image/hjh_01.gif/a/divdiv classfla hrefimg src/static/frontend/image/hjh_02.gif/a/divdiv classfla hrefimg src/static/frontend/image/hjh_03.gif/a/divdiv classfla hrefimg src/static/frontend/image/hjh_04.gif/a/divdiv classfla hrefimg src/static/frontend/image/hjh_05.gif/a/divdiv classfla hrefimg src/static/frontend/image/hjh_06.gif/a/divdiv classclear/div/divdiv classdatu fla hrefimg src/static/frontend/image/hongmi4x.png alt/a/divdiv classdatu fla hrefimg src/static/frontend/image/xiaomi5.jpg alt/a/divdiv classdatu fra hrefimg src/static/frontend/image/pinghengche.jpg alt/a/divdiv classclear/div/div!-- end banner --!-- 手机 --div classcategory_item wdiv classtitle center手机/divdiv classmain centerdiv classcategory_item_leftimg srcstatic/itying/image/shouji.jpg alt手机/divdiv classcategory_item_right{{range $key,$value : .phoneList}}div classhot fldiv classxinpinspan stylebackground:#fff/span/divdiv classtua href#img src{{$value.GoodsImg | FormatImg}}/a/divdiv classmiaoshua href#{{$value.Title}}/a/divdiv classjiage{{$value.Price}}元/divdiv classpingjia372人评价/divdiv classpiaoa hrefspan{{SubStr $value.SubTitle 0 4}}/span/a/div/div{{end}}/div/div/div{{template frontend/public/page_footer.html .}}/body /html {{end}} (2).增加商品分类页面路由 defaultRouters.GET(/category:id, frontend.ProductController{}.Category) (3).基础控制器 在基础控制器BaseController.go中创建公共方法: 加载公共模板方法Render() package frontend//基础控制器import (github.com/gin-gonic/gingorm.io/gormgoshop/modelsnet/httpstrings )type BaseController struct{}/* 加载公共模板方法 tpl string 模板 data map 请求的数据*/ func (con BaseController) Render(c *gin.Context, tpl string, data map[string]interface{}) {//实例化redisCache结构体redisCache : models.RedisCache{}//获取顶部导航列表topNavList : []models.Nav{}//判断redis中是否存在数据if hasTopNavList : redisCache.Get(topNavList, topNavList); !hasTopNavList { //不存在数据,则从数据中获取数据,并把数据保存到redismodels.DB.Where(status 1 AND position 1).Find(topNavList)redisCache.Set(topNavList, topNavList, 3600)}//获取分类数据goodsCateList : []models.GoodsCate{}if hasGoodsCateList : redisCache.Get(goodsCateList, goodsCateList); !hasGoodsCateList {//获取分类列表以及下级分类,并进行排序models.DB.Where(pid ? AND status ?, 0, 1).Order(sort DESC).Preload(GoodsCateItems, func(db *gorm.DB) *gorm.DB {return db.Where(goods_cate.status 1).Order(goods_cate.sort DESC)} ).Find(goodsCateList)redisCache.Set(goodsCateList, goodsCateList, 3600)}//获取中间导航middleNavList : []models.Nav{}if hasMiddleNavList : redisCache.Get(middleNavList, middleNavList); !hasMiddleNavList {models.DB.Where(status ? AND position ? , 1, 2).Find(middleNavList)//循环,获取中间导航对应的商品数据for i: 0; i len(middleNavList);i{//获取管理商品//替换字符串中的中文逗号strings.ReplaceAll()relation : strings.ReplaceAll(middleNavList[i].Relation, , ,)//把字符串转换成切片relationIds : strings.Split(relation, ,)//获取对应的商品信息goodsList : []models.Goods{}models.DB.Where(status ?, 1).Where(id in ?, relationIds).Select(id, title, goods_img, price).Find(goodsList)middleNavList[i].GoodsItems goodsList}redisCache.Set(middleNavList, middleNavList, 3600)}renderData : gin.H{topNavList: topNavList,goodsCateList: goodsCateList,middleNavList: middleNavList,}for key, v : range data {renderData[key] v}c.HTML(http.StatusOK, tpl, renderData) } (4).商品控制器 创建ProductController.go控制器,该控制器与商品相关 package frontend//商品相关import (github.com/gin-gonic/gingoshop/modelsmath )type ProductController struct {//extend 基础控制器BaseController }// 根据商品分类获取分类下面的所有商品数据 func (con ProductController) Category(c *gin.Context) {//获取分类idcateId, _ : models.Int(c.Param(id))//当前页page, _ : models.Int(c.Query(page))if page 0 {page 1}//每一页显示的数量pageSize : 2//获取当前分类curCate : models.GoodsCate{}models.DB.Where(id ? , cateId).Find(curCate)//判断当前分类是否顶级分类,如果是,则获取对应的二级分类,如果不是,则获取对应的兄弟分类subCate : []models.GoodsCate{}var tempSlice []intif curCate.Pid 0 { // 当前分类是顶级分类,获取对应的二级分类models.DB.Where(pid ?, cateId).Find(subCate)//把二级分类id放到切片中for i : 0; i len(subCate); i {tempSlice append(tempSlice, subCate[i].Id)}} else { // 当前分类是二级分类,获取对应的兄弟分类models.DB.Where(pid ?, curCate.Pid).Find(subCate)}//把请求的分类id放入切片tempSlice append(tempSlice, cateId)//通过上面的分类id,获取商品相关数据goodsList : []models.Goods{}where : cate_id in ?models.DB.Where(where, tempSlice).Where(status ?, 1).Offset((page - 1) * pageSize).Limit(pageSize).Find(goodsList)//获取总数量var count int64models.DB.Where(where, tempSlice).Table(goods).Count(count)//定义请求的模板tpl : frontend/product/list.htmlcon.Render(c, tpl, gin.H{goodsList: goodsList, // 商品列表subCate: subCate, // 选择分类下面的子分类currentCate: curCate, // 当前分类page: page, //当前页码数totalPages: math.Ceil(float64(count) / float64(pageSize)), // 总页面数}) }[上一节][golang gin框架] 24.Gin 商城项目-redis讲解以及操作
http://www.w-s-a.com/news/502124/

相关文章:

  • 织梦做的网站如何上线广东省广州市番禺区南村镇
  • 网站设计的导航栏怎么做太原有网站工程公司吗
  • 苏州虎丘区建设局网站如何在一个数据库做两个网站
  • 淘宝天猫优惠券网站建设费用腾讯邮箱企业邮箱登录
  • 深圳福田做网站公司海航科技网站建设
  • 网站降权查询wordpress更换文章背景色
  • 大型电商网站开发金融企业网站建设公司
  • 成都营销型网站建设价格化妆品品牌推广方案
  • 深圳公司手机网站制作苏州网站推广哪家好
  • 网站建设开发方式包括购买学校网站建设费计入什么科目
  • 做简单网站的框架图中小微企业查询平台
  • 哪些网站可以免费做产品推广建设建设部网站
  • 网站开发销售怎么做django做网站
  • 淘宝客网站做百度竞价万网域名怎么绑定网站
  • 建设网站找哪个公司北京知名大公司有哪些
  • 专业彩票网站开发网站流量在哪设置
  • 网站建设对应的岗位榆林做网站公司
  • 网站建设公司怎么算专业js网站分页怎么做
  • 网和网站的区别phpcms和帝国cms哪个好
  • wordpress改网站名字长沙网络营销外包
  • 宝塔怎么做第二个网站网站内容设计遵循的原则有
  • 网站违反了 google 质量指南免费ppt模版网站
  • 郑州网站建设郑州网站建设成都那家网站建设好
  • 温州网站排名优化公司如何招聘软件网站开发人员
  • 成都 网站建设公司哪家好襄阳行业网站建设
  • wordpress 调用时间做网站seo的公司哪家好
  • 手机上网站搭建网站账户系统
  • 西乡网站的建设柳州建站
  • 宁夏网站建设怎么样互联网 网站设计
  • 成都关键词seo推广平台手机端关键词排名优化软件