莱芜 做网站 公司,网站更改,沈阳高端网站建设公司,访问wap网站学习记录 1 模板文件1.1 articlesStoreHandler() 使用模板文件1.2 统一模板 1 模板文件
重构 articlesCreateHandler() 和 articlesStoreHandler() 函数#xff0c;将 HTML 抽离并放置于独立的模板文件中。
1.1 articlesStoreHandler() 使用模板文件
.
.
.
func articlesSt… 学习记录 1 模板文件1.1 articlesStoreHandler() 使用模板文件1.2 统一模板 1 模板文件
重构 articlesCreateHandler() 和 articlesStoreHandler() 函数将 HTML 抽离并放置于独立的模板文件中。
1.1 articlesStoreHandler() 使用模板文件
.
.
.
func articlesStoreHandler(w http.ResponseWriter, r *http.Request) {...// 检查是否有错误if len(errors) 0 {...} else {storeURL, _ : router.Get(articles.store).URL()data : ArticlesFormData{Title: title,Body: body,URL: storeURL,Errors: errors,}tmpl, err : template.ParseFiles(resources/views/articles/create.gohtml)if err ! nil {panic(err)}err tmpl.Execute(w, data)if err ! nil {panic(err)}}
}
.
.
.以上的修改1. 删了 html 变量 2. 使用以下这段代码加载模板文件其他代码保持不变
tmpl, err : template.ParseFiles(resources/views/articles/create.gohtml)关于模板后缀名 .gohtml 可以使用任意后缀名这不会影响代码的运行。常见的 Go 模板后缀名有 .tmpl、.tpl、 .gohtml 等。
接下来创建模板文件 resources/views/articles/create.gohtml //直接创建文件对应的目录也会生成
!DOCTYPE html
html langen
headtitle创建文章 —— 我的技术博客/titlestyle typetext/css.error {color: red;}/style
/head
bodyform action{{ .URL }} methodpostpinput typetext nametitle value{{ .Title }}/p{{ with .Errors.title }}p classerror{{ . }}/p{{ end }}ptextarea namebody cols30 rows10{{ .Body }}/textarea/p{{ with .Errors.body }}p classerror{{ . }}/p{{ end }}pbutton typesubmit提交/button/p/form
/body
/html浏览器访问 localhost:3000/articles/create
1.2 统一模板
修改 articlesCreateHandler的代码来加载同一个模板
func articlesCreateHandler(w http.ResponseWriter, r *http.Request) {storeURL, _ : router.Get(articles.store).URL()data : ArticlesFormData{Title: ,Body: ,URL: storeURL,Errors: nil,}tmpl, err : template.ParseFiles(resources/views/articles/create.gohtml)if err ! nil {panic(err)}err tmpl.Execute(w, data)if err ! nil {panic(err)}
}访问 localhost:3000/articles/create