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来命名
- 导入方式