19Jinja2中宏定義

 1 @app.route('/')
 2 def hello_world():
 3     return render_template('index.html')
 4 
 5 
 6 {% macro input(name="",value="",type="text") %}  7     <input type="{{ type }}" name="{{ name }}" value="{{ value }}">
 8 {% endmacro %}  9 
10 <h1>Jinja2宏</h1>
11 <table>
12     <tbody>
13     <tr>
14         <td>用戶名:</td>
15         <td>{{ input('username') }}</td>
16     </tr>
17     <tr>
18         <td>密碼:</td>
19         <td>{{ input('username',type="password") }}</td>
20     </tr>
21     <tr>
22         <td></td>
23         <td>{{ input('username',type="submit",value="提交") }}</td>
24     </tr>
25     </tbody>
26 </table>

 以上是基本的宏定義方法。html

一,導入宏app

若是把宏寫到其餘的html代碼中,那麼只須要這樣引入。spa

在html中第一行輸入:ssr

1, {% from 'macro.html' import input %}3d

2, {% from 'macro.html' import input as 別名 %}code

使用別名後記得把input也改成別名。htm

3, {% import 'macro.html' as 別名 %}blog

這裏是導入了macro.html這個文件且去了別名,使用的時候爲:input

別名.inputit

 

二,include

做用:每一個網頁中共同的部分,只寫一次,而後引用它。

語法:{% include header.html%}

示例:

{% include header.html%}

  content

{% include footer.html%}

 

三,set和with

使用set語句定義變量。

 語法:{% set user =''知了''  %},一旦定義了這個變量,那麼在後面的代碼中均可以使用這個變量。

示例:

{% set user =''知了''  %}

用戶名:{{ user }}

with的用法:只能做用在代碼塊中,他是帶endwidth的。

{% with user =''知了''  %}

用戶名:{{ user }}

{% endwith %}

還有一種with和set結合的用法:

{%  with %}

  {% set classroom = "知了" %}

  <p> {{ classroom }} </p>

{%  endwidth  %}

這樣就可以作到把set限定在代碼塊而非整個文件中。

相關文章
相關標籤/搜索