可以。golang模板引擎動(dòng)態(tài)可以讀取sql。text/template是Go語言標(biāo)準(zhǔn)庫(kù),實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)模板以生成文本輸出,可以理解為一組文字按照特定格式動(dòng)態(tài)嵌入另一組文字中。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供威信企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為威信眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
和有些小伙伴一樣,本人是從php轉(zhuǎn)到了go,從事php時(shí)使用symfony框架一直享受其豐富的功能帶來的便利,轉(zhuǎn)到其他語言時(shí)比較直觀的感覺就是twig真強(qiáng),為什么其他語言沒有擴(kuò)展twig呢?
雖然前后端的開發(fā)模式,讓模板引擎這個(gè)東西慢慢淡去,但是有時(shí)候還是需要用到這種東西,所以就有了,go調(diào)用php實(shí)現(xiàn)twig模板引擎的想法。
原理,go 通過exec.Command調(diào)用php,通過STDIN,STDOUT 方式進(jìn)行數(shù)據(jù)交互
go在初始化階段提供一些配置參數(shù),比如模板引擎的為止,是否為開發(fā)環(huán)境等,php接收數(shù)據(jù)并初始化
初始換環(huán)境完畢后,當(dāng)需要渲染模板,go再講模板文件和數(shù)據(jù)以json字符串的形式寫入STDIN告知php,
php接收到數(shù)據(jù)后,解析數(shù)據(jù),選取指定的模板并渲染,然后通過STDOUT返回給go
這樣一次渲染就結(jié)束了
整理好的文件打包在github上了
如果喜歡就動(dòng)動(dòng)你的小手指點(diǎn)個(gè)贊,star一下吧!
Go語言模板文件可以引入js文件或css文件,但是在引入的過程中,需要注意以下幾點(diǎn):
1. 引入的文件路徑應(yīng)該是相對(duì)路徑,而不是絕對(duì)路徑。
2. 在引入js文件時(shí),需要使用{{ url }} 模板函數(shù),用來拼接路徑, 這樣可以更好的兼容不同的路徑。
3. 如果是在統(tǒng)一的文件夾中的js文件,最好使用{{ static }}模板函數(shù),這樣可以更好的節(jié)省路徑長(zhǎng)度。
4. 在引用js文件時(shí),需要在頁(yè)面底部,可以使用{{ template }}模板函數(shù),這樣可以保證js文件在頁(yè)面加載完成之前就被加載。
總之,使用Go語言模板文件引入js文件,需要注意路徑的相對(duì)性,并且使用模板函數(shù)來拼接路徑,這樣可以更好的兼容不同的路徑,從而保證引用js文件的正確性。