jinja2 宏

宏相当于一个搭建好的页面一部分,可以被引入,可以往宏传递参数。可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量,在使用宏时传递参数,从而将宏渲染成为页面的一部分,跟python中的函数类似。

定义宏:

{% macro 宏名称(参数) %}   {# 参数为可选#}

    代码块

{% endmacro %}

{{ 宏名称(参数) }}    {# 调用宏 #}

    {% macro input(label,name,type='text') %}
    <label>{{label}}</label>
    <input type="{{ type }}" name="{{name}}" >
    {% endmacro %}

    {{input('用户名','username')}}
    {{input('密码','password','password')}}

导入宏

在开发中,会将一些常用的宏单独放在一个文件中,在需要使用的时候,再从这个文件中进行导入。

import语句的用法跟python中的import类似:

import...as...
from...import...
from...import...as...

{% import 'macro.html' as my_input  %}

{{ my_input.input_macro('用户名:','name')}}
{{ my_input.input_macro('密码:','password','password')}}



{% from 'macro.html' import input_macro %}

{{input_macro('用户名','name')}}
{{input_macro('提交',type='submit')}}
Iyoyo电子书 一本集作者多年开发经验的python电子书 all right reserved,powered by Gitbook文件修订时间: 2022年 15:57:11