flask之jinja2渲染模板---控制结构

导读:

模板是一个包含响应文本的文件(.html),jinja2是flask渲染模板的引擎,flask在一个名为templates的子文件夹中寻找模板,本文主要讲模板中的几种控制结构。

控制结构:

1.if条件控制:

{% if user%}
	Hello, {{user}}!
{% else %}
	Hello, World!
{% endif %}

2.for循环结构:

    {% for comment in comments %}
  • {{ comment }}
  • {% endfor %}

3.宏(macro)结构,类此于函数:

{% macro render_comment(comment) %}
	
  • {{comment}}
  • {% endmacro %}
      {% for comment in comments %} {{render_comment(comment)}} {% endfor %}

    4.为了重复利用宏,可以把它单独放在一个文件中,需要的时候可以导入:

    {% import 'macros.html' as macros %}
    
      {% for comment in comments %} {{macros.render_comment(comment)}} {% endfor %}

    5.需要在频繁使用的代码可以打包放在同一个文件中,需要的时候导入:

    {% include 'common.html' %}
    

    6.模板继承:

    • 先创建一个名为base.html的基模板
    
    
    	{% block head %}
    	</span><span class="token punctuation">{</span>% block title %<span class="token punctuation">}</span><span class="token punctuation">{</span>% endblock %<span class="token punctuation">}</span> <span class="token selector">- My Application
    	{% endblock %}
    
    
    	{% block body %}
    	{% endblock %}
    
    
    
    • block标签定义的元素可以在衍生模板中修改
    {% extends 'base.html' %}----extends声明这个模板衍生自base.html
    {% block title %}Index{% endblock %}
    {% block head %}
    	{{super()}}
    	
    {% endblock %}
    {% block body %}
    

    hello,world!

    {% endblock %}

    你可能感兴趣的:(flask)