zoukankan      html  css  js  c++  java
  • Flask 模板语言

    Flask使用的是Jinja2模板引擎

    举个例子:

    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        name = "<h1>Hello</h1>"
        return render_template('index.html', name=name)
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>hello, {{ name }}</h1>
    </body>
    </html>

    模板的变量

    在模板中使用的 {{ name }} 结构表示一个变量,它是一种特殊的占位符,告诉模 板引擎这个位置的值从渲染模板时使用的数据中获取。

    Jinja2 能识别所有类型的变量,甚至是一些复杂的类型,例如列表、字典和对象。在模板 中使用变量的一些示例如下:

    <p>A value from a dictionary: {{ mydict['key'] }}.</p>
    <p>A value from a list: {{ mylist[3] }}.</p>
    <p>A value from a list, with a variable index: {{ mylist[myintvar] }}.</p>
    <p>A value from an object's method: {{ myobj.somemethod() }}.</p>

    还有变量过滤器

    Hello, {{ name|capitalize }}

    值得主意的是:

    safe 过滤器值得特别说明一下。默认情况下,出于安全考虑,Jinja2 会转义所有变量。例 如,如果一个变量的值为 '<h1>Hello</h1>',Jinja2 会将其渲染成 '&lt;h1&gt;Hello&lt;/ h1&gt;',浏览器能显示这个 h1 元素,但不会进行解释。很多情况下需要显示变量中存储 的 HTML 代码,这时就可使用 safe 过滤器。
    千万别在不可信的值上使用 safe 过滤器,例如用户在表单中输入的文本。

    if and for

    {% if user %}     
    Hello, {{ user }}!
    {% else %}
    Hello, Stranger!
    {% endif %}
    <ul>     
        {% for comment in comments %}         
            <li>{{ comment }}</li>     
        {% endfor %} 
    </ul>

    模板继承

    <html>
    <head>
        {% block head %}
        <title>{% block title %}{% endblock %} - My Application</title>
        {% endblock %}
    </head>
    <body>
    {% block body %}
    {% endblock %}
    </body>
    </html>
    主板base.html
    {% extends "base.html" %}
    {% block title %}Index{% endblock %}
    {% block head %}
        {{ super() }}
        <style>
        </style>
    {% endblock %}
    {% block body %}
    <h1>Hello, World!</h1>
    {% endblock %}
    子板

     宏?感觉用不到吧

    嘿嘿,不写了

  • 相关阅读:
    正则表达式
    Newtonsoft.Json
    MVC之参数验证(三)
    MVC之参数验证(二)
    MVC之参数验证(一)
    MVC之模型绑定
    导致存储过程重新编译的原因
    IFormattable,ICustomFormatter, IFormatProvider接口
    oracle将id串转换为名字串
    oracle查看表空间大小及使用情况
  • 原文地址:https://www.cnblogs.com/renfanzi/p/6080876.html
Copyright © 2011-2022 走看看