日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flask中jinjia2模板引擎使用详解5

發布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask中jinjia2模板引擎使用详解5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上文

可以理解為函數,即把一些常用的模板片段做好封裝,以便于重用,減少工作量和維護難度。

宏的定義很簡單:

{%macro xxx()%}

##這里寫內容

{%endmacro%}

下面引用官方的一個例子進行說明:

{% macro input(name, value='', type='text', size=20) -%}

<input type="{{ type }}" name="{{ name }}" value="{{

value|e }}" size="{{ size }}">

{%- endmacro %}

在content的block中進行調用

<>{{?()?}}</> <>{{?(,?=)?}}</>

運行效果:

導入宏

我們可以把常用的宏放到一個文件中,然后在其它文件中引用,實現模塊化的管理。

我們新建一個form.html的文件,放入如下的代碼:

{%?(,?=,?=)?-%}<{{?}}{{?|}}{{?}}> {%-?%}{%-?(,?=,?=10,?=40)?-%}<{{?}}{{?}}{{?}}>{{?|}}</> {%-?%}

在list.html中導入forms.html

{%?import?"forms.html"?as?forms%}

調用方式

<><>Username</><>{{?.()?}}</><>Password</><>{{?.(,?=)?}}</> </> <>{{?.()?}}</>

運行效果:

還有一種調用方式:

{%?from?'forms.html'?import?input?as?input_field,?textarea?%}

宏調用

在某些情況下,需要把一個宏傳遞到另一個宏。為此,可以使用特殊的 call 塊。 下面的例子展示了如何讓宏利用調用功能:

代碼:

<h1>調用示例</h1>
{% macro render_dialog(title, class='dialog') -%}
<div class="{{ class }}">
<h2>{{ title }}</h2>
<div class="contents">
{{ caller() }}
</div>
</div>
{%- endmacro %}
{% call render_dialog('Hello World') %}
This is a simple dialog rendered by using a macro and
a call block.
{% endcall %}

運行效果:

Call塊其實是一種特殊的宏,我們可以叫它為匿名宏,就是沒有命名的函數,函數當然就可以有參數,下面還是以一個例子來說明一下帶參數的call模塊的使用方式。
<h1>帶參數的宏</h1>
{% macro dump_users(users) -%}
<ul>
{%- for user in users %}
<li><p>{{ user|e }}</p>{{ caller(user) }}</li>
{%- endfor %}
</ul>
{%- endmacro %}
{% call(user) dump_users(users) %}
<dl>
<dl>姓名</dl>
<dd>{{ user|e }}</dd>
</dl>
{% endcall %}

運行效果:


本文源代碼:鏈接:https://pan.baidu.com/s/1BD6pESSwW8SoRHKe66P8Dw 密碼:ur6u?

轉載于:https://blog.51cto.com/12482328/2083998

總結

以上是生活随笔為你收集整理的flask中jinjia2模板引擎使用详解5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。