Flask模板引擎Jinja2使用实例

 更新时间:2020年04月23日 10:58:29   作者:gdjlc  
这篇文章主要介绍了Flask模板引擎Jinja2使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Flask提供的模板引擎为Jinja2,易于使用,功能强大。

模板仅仅是文本文件,它可以生成任何基于文本的格式(HTML、XML、CSV、LaTex 等等)。

它并没有特定的扩展名, .html 或 .xml 都是可以的。

模板包含 变量 或 表达式 ,这两者在模板求值的时候会被替换为值。模板中还有标签,控制模板的逻辑。

Jinja2文档:http://docs.jinkan.org/docs/jinja2/index.html

下面是一些使用实例,涉及模板继续、变量、赋值、循环、去空白、转义块、条件语句等。

1、在目录templates下面创建基本模板文件base.html

<!doctype html>
<html>
  <head>
    <title>{{title}}</title>
    <style text="text/css">
      ul{list-style:none}
      li{padding-left:20px}
    </style>
  </head>
  <body>  
    <div id="content">
     <h4>子模板内容</h4>
      {% block content %}
      
      {% endblock %}
    </div>
  </body>
</html>

2、同样在目录templates下面创建子模板文件test1.html

{% extends 'base.html' %}
{# 这里是注释,上面标签表示当前模板继承自模板base.html #}  

{% block content %}

  变量:{{v1}}
   <br />
   
   赋值:
   {% set v2 = 100 %}
   {{v2}}
   <br />     
   
  循环:
  {% for item in items%}
    {{ item.name }}
  {% endfor %}
   <br />  
     
  去空白:
  {% for item in items -%}
    {{ item.name }}
  {%- endfor %}
   <br />
   
   转义块:
   {% raw %}
    <ul>
     {% for item in list -%}
      <li>{{ item }}</li>
     {%- endfor %}
    </ul>
   {% endraw %}
   
   条件语句:
   {% for item in items%}
    {% if item.name == '张三' %} {{item.name}}(管理员)
    {% else %} {{item.name}}
    {% endif %}     
  {% endfor %}
  <br />
  <form method="post" action="/getFormValue">		     <input type="text" name="username" width="60" />		     <input type="submit" value="获取表单值" />		 	  </form>
{% endblock %}

3、在与目录templates平级目录上创建test1.py

from flask import Flask, render_template, request

app = Flask(__name__) 

@app.route('/test1')
def test1() -> 'html': 
 items = [{'name':'张三'},
     {'name':'李四'},
     {'name':'王五'}]
 return render_template('test1.html',
             title='test',
             v1='变量值',
             items = items)


@app.route('/getFormValue', methods=['POST'])
def getFormValue() -> 'str':
 username = request.form['username'] 
 return username

app.run(debug = True)

4、在命令提示符下执行py -3 test1.py

访问http://127.0.0.1:5000/test1,页面显示如下:

子模板内容
变量:变量值
赋值: 100
循环: 张三 李四 王五
去空白: 张三李四王五
转义块:
{% for item in list -%}
{{ item }}
{%- endfor %}
条件语句: 张三(管理员) 李四 王五

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python 共享变量加锁、释放详解

    Python 共享变量加锁、释放详解

    这篇文章主要介绍了Python 共享变量加锁、释放详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python复制文件代码实现

    python复制文件代码实现

    最近在备份手机上的照片的时候,纯手工操作觉得有些麻烦,就想写个脚本自动进行。因为备份的时候有些照片以前备份过了,所以需要有个判重操作,看下面的实现代码
    2013-12-12
  • Python 定义只读属性的实现方式

    Python 定义只读属性的实现方式

    这篇文章主要介绍了Python 定义只读属性的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)

    二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)

    这篇文章主要介绍了使用Python email模块、smtplib库发送邮件的实例,大家参考使用
    2013-12-12
  • Python Matplotlib 库使用指南

    Python Matplotlib 库使用指南

    这篇文章主要介绍了Python Matplotlib 库使用基本指南,通过本教程,我们学习了使用 Matplotlib 创建各种类型的图表和图形,Matplotlib 提供了丰富的函数和选项,以满足不同的数据可视化需求,需要的朋友可以参考下
    2024-01-01
  • python 如何将字典写为json文件

    python 如何将字典写为json文件

    这篇文章主要介绍了python 如何将字典写为json文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 如何用python识别滑块验证码中的缺口

    如何用python识别滑块验证码中的缺口

    这篇文章主要介绍了如何用python识别滑块中的缺口,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python 一维二维插值实例

    python 一维二维插值实例

    这篇文章主要介绍了python 一维二维插值实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 从零学python系列之从文件读取和保存数据

    从零学python系列之从文件读取和保存数据

    在Python一般都是运用内置函数open()与文件进行交互,下面说说具体用法
    2014-05-05
  • python之从文件读取数据到list的实例讲解

    python之从文件读取数据到list的实例讲解

    下面小编就为大家分享一篇python之从文件读取数据到list的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04

最新评论