zoukankan      html  css  js  c++  java
  • Flask 5 模板1

    NOTE

    1.VF的作用:生成请求的响应。一般来说请求会改变程序的状态,这种变化会在视图函数中产生。

    eg.用户在网站中注册了一个新账户,用户在表单中输入电子邮件地址和密码,然后提交到服务器,服务器接收到请求,然后Flask将请求分发到处理注册的视图函数。这个视图函数首先要访问数据库添加新用户,然后生成响应返回游览器。

    访问数据库添加新用户的过程称为业务逻辑,生成响应返回称为表现逻辑。

    2.将业务逻辑和表现逻辑混杂在一起使代码难以理解和维护。把表现逻辑移动到模板中能够提升程序的可维护性。

    3.模板是一个保含响应文本的文件,其中有需要用上下文中的真实值替换占位变量的动态部分,也有无法改变的静态部分。

    用真实值替换变量,返回响应字符串,称为渲染。

    Flask使用了名为Jinja2的强大模板引擎。

    4.Demo

    Jinja2 templates/index.html

    <h1>Hello World!</h1>
    

    Jinja2 templates/user.html

    <h1>Hello, {{ name }}!</h1>
    

    模板渲染:从flask导入render_template函数,以集成Jinja2引擎。

    #!/usr/bin/env python
    
    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return render_template('index.html')
    
    @app.route('/user/<name>')
    def user(name):
        return render_template('user.html', name=name)
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    name=name 关键字键值对,左边的name是参数名,右边的name是变量。

    (venv) sh-3.2# ./hello.py 
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
     * Restarting with stat
     * Debugger is active!
     * Debugger pin code: 195-717-834
    127.0.0.1 - - [18/Feb/2017 15:52:11] "GET / HTTP/1.1" 200 -
    127.0.0.1 - - [18/Feb/2017 15:52:22] "GET / HTTP/1.1" 200 -
    127.0.0.1 - - [18/Feb/2017 15:52:23] "GET /user/wasdns HTTP/1.1" 200 -
    127.0.0.1 - - [18/Feb/2017 15:52:25] "GET /user/wasdns HTTP/1.1" 200 -
    

    5.{{ name }}结构表示一个变量,是一种特殊的占位符。Jinja2能够识别所有类型的变量,甚至是一些复杂的类型。

    此外,可以使用过滤器来修改变量,过滤器名添加在变量名之后,中间使用竖线划分。

    => Flask的Jinja2模板引擎 — 过滤器(3rd)

    safe        渲染值时不转义
    capitaliza  把值的首字母替换为大写,其他为小写。
    

    eg.

    <h1>Hello, {{ name|capitalize }}!</h1>
    
    @app.route('/user/<name>')
    def user(name):
        return render_template('filter.html', name=name)
    
    127.0.0.1 - - [18/Feb/2017 16:11:01] "GET /user/wasdns HTTP/1.1" 200 -
    

    出于安全考虑,Jinja2会转义所有变量。有些情况下需要显示变量中存储的html代码,这个时候就需要使用safe过滤器。

    2017/2/18

  • 相关阅读:
    Hexo博客搭建教程
    windows7如何查看端口被占用
    openshift rhc
    .net面试题精选
    Java垃圾回收机制
    Maven 入门篇(下)
    Maven 入门篇 ( 上 )
    OPENSHIFT MYSQL使用Navicat远程连接
    ci配置smarty手记
    solr多核配置
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6413383.html
Copyright © 2011-2022 走看看