天天看點

5、ctemplate簡介

1、linux下的web開發,動态頁面生成很費周折,通常利用cgi接受請求,然後傳回頁面給請求端。代碼邏輯和顯示邏輯寫在一起,是一件很痛苦的事情。C++裡的google ctemplate,便是解決這個問題。【1】

ctemplate解決的主要問題是将文字表達和邏輯分離開來:文字模闆解決如何用合适的文字和形式來表示問題,而邏輯問題則由文字模闆的調用者在源代碼中完成。

ctemplate大體上分為兩個部分,一部分是模闆,另一部分是資料字典。模闆定義了界面展現的形式(V),資料字典就是填充模闆的資料(M),你自己寫業務邏輯去控制界面展現(C),典型的MVC模型。

2、ctemplate模闆中有四中标記,對應的資料字典也有不同的處理方式:

① 變量,{{變量名}},用兩個大括号包含的就是變量名,在c++代碼中,可以對變量指派,任何類型的值都可以(如字元,整數,日期等)。

② 片斷,{{#片斷名}},片斷在資料字典中表現為一個子字典,字典是可以分級的,根字典下面有多級子字典。片斷可以處理條件判斷和循環。

③ 包含,{{>模闆名}}包含指的是一個模闆可以包含其他模闆,對應的也是一個字字典。

④ 注釋,{{!注釋名}},包含注釋。

3、示例程式

模闆

5、ctemplate簡介
5、ctemplate簡介

example.tpl

字典邏輯

5、ctemplate簡介
5、ctemplate簡介

.cpp

運作結果

5、ctemplate簡介
5、ctemplate簡介

View Code

4、說明,編譯時:

g++ -g -o test_ct test_template.cpp -lctemplate

要加ctemplate靜态庫來包含所引用的檔案。

參考

【4】 ctemplate安裝包下載下傳位址:

<a href="http://code.google.com/p/google-ctemplate/downloads/list">http://code.google.com/p/google-ctemplate/downloads/list</a>

【5】示例程式

<a href="http://code.google.com/p/google-ctemplate/">http://code.google.com/p/google-ctemplate/</a>

繼續閱讀