flask-宏

flask-宏


  • 模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量,使用宏的时候,参数可以为默认值。
  • 使用示例:
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    {% macro input(name='', value='', type='text') %}
        <input type="{{ type }}" name="{{ name }}" value="{{ value }}">
    {% endmacro %}
    
    <p>用户名:{{ input(name='username') }}</p>
    <p>密码:{{ input(name='password', type='password') }}</p>
    <p>提交: {{ input(type='submit', value='提交') }}</p>
    
    </body>
    </html>
  • 效果:
  •  先用模板标签macro定义一个html宏,然后在这个标签包裹的内部书写这个宏的具体内容

  • 使用宏的时候直接就向是使用函数一样使用即可 

  • 将所有的宏放置在一个文件里
  • 使用的时候直接导入即可
    • 导入方式
       1 {#{% from 'macro.html' import input  %}#}
       2 {% import 'macro.html' as macro %}
       3 <!DOCTYPE html>
       4 <html lang="en">
       5 <head>
       6     <meta charset="UTF-8">
       7     <title>Title</title>
       8 </head>
       9 <body>
      10 
      11 
      12 <p>用户名:{{ macro.input(name='username') }}</p>
      13 <p>密码:{{ macro.input(name='password', type='password') }}</p>
      14 <p>提交: {{ macro.input(type='submit', value='提交') }}</p>
      15 
      16 </body>
      17 </html>

      导入的文件是一个template文件夹的下的相对路径的字符串

    • 可以使用import和from   path   import func的方法
    • 直接使用import的时候需要使用as来命名
原文地址:https://www.cnblogs.com/ivy-blogs/p/11509124.html