flask之jinjia2模板語言

2022-05-15 15:29:52 字數 3700 閱讀 3281

flask_jinjia2.py

1

'''2

flask中的jinjia2模板語言(和django中模板類似):

3(1)模板變數}45

(2)模板標籤

6①for迴圈遍歷78

......910

②if...else判斷

1112

...13

14...

1516

...17

18(3)模板繼承,配合模板中定義的block重寫需要改動的部分

1920

21......

2223

24(4)模板元件在頁面中引入html元件

2526

(5)通過後端特殊裝飾器定義函式在模板中直接時候用

2728

2930

(6)jinjia2模板語言中的巨集定義

31在模板中先定義:

3233

html標籤使用引數

3435

36在模板中使用定義的巨集:37}

3839

例項:40

4142

434445}

46}4748

49(7)模板過濾器safe及flask中的markup使用

50返回html標籤可以在模板中使用過濾器safe確保安全正常渲染成標籤

51也可以在後端flask專案中通過markup()例項化之後記性渲染

5253

'''54

55from flask import

flask, render_template,markup56)

5859 student = ,

6061 student_list =[

62 ,

63 ,

64 65]

6667 student_dict =,

69 2: ,

70 3: ,71}

727374#

模板變數和標籤使用以及markup()返回標籤

/jinjia2')

76def

data():

77 title='

'78 markup_title=markup(title)

79return render_template('

jinjia2daemo.html

', st=student, stl=student_list, std=student_dict,title=markup_title)80#

return render_template('jinjia2daemo.html',**)

818283#

特殊裝飾器函式在模板中的全域性使用

8485

defsum1(a, b):

86return a +b

8788

89def sum2(a, b, c, d): #

第乙個引數為模板變數

90return a + b + c +d

9192

9394

if__name__ == '

__main__':

jinjia2daemo.html

1doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

title

>data

title

>

6head

>

7<

body

>89

10<

div>}

div>

1112

13<

div>

14<

h2>單個學生

h2>}15

div>

1617

<

div>

18<

h2>列表巢狀字典資料

h2>}19

<

table

border

="1px"

>

20<

tr>

21<

td>name

td>

22<

td>age

td>

23<

td>gender

td>

24tr

>

2526

<

tr>

27<

td>}

td>

28<

td>}

td>

29<

td>

3031}32

33'男'

3435

td>

36tr

>

3738

table

>

39div

>

4041

<

div>

42<

h2>字典巢狀字典資料

h2>}43

<

table

border

="1px"

>

44<

tr>

45<

td>id

td>

46<

td>name

td>

47<

td>age

td>

48<

td>gender

td>

49tr

>

5051

<

tr>

52<

td>}

td>

53<

td>}

td>

54<

td>}

td>

55<

td>

5657}58

59'男'

6061

td>

62tr

>

6364

table

>

65div

>

6667

68<

div>

69<

h2>特殊裝飾器自定義的函式直接在模板中使用

h2>70}

71<

br>72}

73div

>

7475

7677

<

div>

78<

h2>jinjia2模板語言中的巨集定義

h2>

79<

div>

8081

<

input

type

="}"

name

="}"

value

="}"

>

828384}

85}86div

>

87div

>

8889

9091

92body

>

93html

>

flask中jinjia2模板引擎使用詳解4

接上文 for迴圈 和其它程式語言一樣,for用來編輯列表中的項。下面以乙個例子來說明for在flask的jinjia2模板中的使用。建立乙個模板list.html 如下 li li 在code.py中新增url規則 defrenderlist users zhang san li si wang ...

flask中jinjia2模板引擎使用詳解2

接上文 注釋的使用 在jinjia2模板中,使用進行 注釋,如下所示 執行後發現,注釋不會被render出來 去掉空行 兩種方法可以去掉jinjia2模板中的空白行,一是設定jinjia2的環境變數,如下 另一種是通過在模板的邏輯塊中新增 號 h1 hello h1 h1 name is numbe...

Ansible中的jinjia2模板

jinjia模板是在ansible中建立的一類模板檔案,通常以.j2結尾標識。模板的內容含有多個變數,使原本固定的某個檔案配置,通過引數的改變,變得可以復用,提高了使用效率。模板的組成 模板一般由多個元素組成,包含 資料 變數 表示式 變數 通常在play中的vars中進行標識,表示式為 表示式或者...