beego 模板語法

2022-03-13 22:48:15 字數 3203 閱讀 6697

go統一使用}作為左右標籤,沒有其它的標籤符號。

使用"."來訪問當前位置的上下文,使用"$"來引用當前模板根級的上下文,使用$var來訪問建立的變數。

} // 一般 string

} // 原始 string

} // byte

} // nil 也被支援

可以是上下文的變數輸出,也可以是函式通過管道傳遞的返回值。

}

當pipeline的值等於:

那麼這個pipeline被認為是空。

(1)if...else...end

}}

if判斷時,pipeline為空時,相當於判斷為false

this.data["islogin"] = true

this.data["ishome"] = true

this.data["isabout"] = true

支援巢狀的迴圈

}

} }}

}

也可以使用else if進行

}}}

}

(2)range...end  內迴圈

}}}

pipeline 支援的型別為 array, slice, map, channel

range 迴圈內部的.改變為以上型別的子元素

對應的值長度為 0 時,range 不會執行,.不會改變

pages := struct , , }

this.data["total"] = 100

this.data["pages"] = pages

使用.num輸出子元素的 num 屬性,使用$.引用模板中的根級上下文

}

} of }

}

使用建立的變數,在這裡和 go 中的 range 用法是相同的。

}

} - } - } of }

}

range 也支援 else

}

} }

}

(3)with...end

}}

with 用於重定向 pipeline

}

}}

也可以對變數賦值操作

}

}}

with 也支援 else

}

} }

}

(4)define

define 可以用來定義自模板,可用於模組定義和模板巢狀

}

}}

使用 template 呼叫模板

(5)template

}

將對應的上下文 pipeline 傳給模板,才可以在模板中呼叫

}

beego 會依據你設定的模板路徑讀取 head.html

在模板中可以接著載入其他模板,對於模板的分模組處理很有用處

允許多行文字注釋,不允許巢狀

}

變數可以使用符號|在函式間傳遞

}

}

使用括號

}

(1)and

}

and 會逐一判斷每個引數,將返回第乙個為空的引數,否則就返回最後乙個非空引數

(2)call

}

call 可以呼叫函式,並傳入引數

呼叫的函式需要返回 1 個值 或者 2 個值,返回兩個值時,第二個值用於返回 error 型別的錯誤。返回的錯誤不等於 nil 時,執行將終止。

(3)index

index 支援 map, slice, array, string,讀取指定型別對應下標的值

this.data["maps"] = map[string]string

}

(4)len

}

返回對應型別的長度,支援型別:map, slice, array, string, chan

(5)not

not 返回輸入引數的否定值,if true then false else true

(6)or

}

or 會逐一判斷每個引數,將返回第乙個非空的引數,否則就返回最後乙個引數

(7)print

對應 fmt.sprint

(8)printf

對應fmt.sprintf

(9)pfintln

對應fmt.sprintf

(10)urlquery

}

將返回

http%3a%2f%2fbeego.me

(11)eq / ne / lt / le / gt / ge

這類函式一般配合在 if 中使用

eq: arg1 == arg2

ne: arg1 != arg2

lt: arg1 < arg2

le: arg1 <= arg2

gt: arg1 > arg2

ge: arg1 >= arg2

eq 和其他函式不一樣的地方是,支援多個引數,和下面的邏輯判斷相同

arg1==arg2 || arg1==arg3 || arg1==arg4 ...

與 if 一起使用

}}

}}

beego內建的模板函式

目前beego內建的模板函式有如下 在.html檔案中可以直接使用的函式。markdown 實現了把markdown文字轉化為html資訊,使用方法 dateformat 實現了時間的格式化,返回字串,使用方法 date 實現了類似php的date函式,可以很方便的根據字串返回時間,使用方法 com...

discuz discuz模板語法

discuz x 模板的解析主要是 source class class template.php 檔案解析處理的,如果需要深入了解請可以看看這個檔案!將被巢狀模板內容解析為 php 語句並合併入本模板中的寫法 common header 對應某個模板套系中的 common 目錄的 header.h...

django 模板語法

顯示的資料必須是後端view.py傳輸的資料 名字 1.普通輸出 2.for 迴圈 3.if 判斷 forloop.counter 索引從 1 開始算 forloop.counter0 索引從 0 開始算 forloop.revcounter 索引從最大長度到 1 forloop.revcounte...