分享
  1. 首页
  2. 主题
  3. Go Web开发

studygolang源码阅读问题(1)?

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

#### 1.模板渲染问题 ```go // Render html 输出 func Render(ctx echo.Context, contentTpl string, data map[string]interface{}) error { if data == nil { data = map[string]interface{}{} } objLog := logic.GetLogger(ctx) contentTpl = LayoutTpl + "," + contentTpl // 为了使用自定义的模板函数,首先New一个以第一个模板文件名为模板名。 // 这样,在ParseFiles时,新返回的*Template便还是原来的模板实例 htmlFiles := strings.Split(contentTpl, ",") for i, contentTpl := range htmlFiles { htmlFiles[i] = config.TemplateDir + contentTpl } tpl, err := template.New("layout.html").Funcs(funcMap). Funcs(template.FuncMap{"include": tplInclude}).ParseFiles(htmlFiles...) if err != nil { objLog.Errorf("解析模板出错(ParseFiles):[%q] %s\n", Request(ctx).RequestURI, err) return err } data["pos_ad"] = logic.DefaultAd.FindAll(ctx, ctx.Path()) data["cur_time"] = times.Format("Y-m-d H:i:s") data["path"] = ctx.Path() data["filter"] = false if _, ok := filterPathes[ctx.Path()]; ok { data["filter"] = true } // TODO:每次查询有点影响性能 hasLoginMisson := false me, ok := ctx.Get("user").(*model.Me) if ok { // 每日登录奖励 hasLoginMisson = logic.DefaultMission.HasLoginMission(ctx, me) } data["has_login_misson"] = hasLoginMisson return executeTpl(ctx, tpl, data) } ``` tpl, err := template.New("layout.html").Funcs(funcMap). Funcs(template.FuncMap{"include": tplInclude}).ParseFiles(htmlFiles...) 上边这个函数不太明白,这个最后应该是渲染一个完整的html界面吧,看完后还是不清楚如何将layout.html和里面的content模块组合在一起的。 #### 2.帖子分页问题 主题帖子分页查找----->显示的流程不太清楚,主要是model里定义的数据结构没有解释,虽然从名称大概能看出什么意思。现在刚开始看,心里是有点恐惧的,主要是web开发这块经验还是不足,好多业务功能可能没做过。现在源码的整体架构大概明白,可能函数中的一些细节需要进一步阅读。 不知道大家是如何阅读源码的,可以分享一些经验吗?

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

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

关注微信
1412 次点击
5 回复 | 直到 2018年06月20日 09:26:01
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)