Flask学习笔记之模板(一)

作者: 罗罗攀 | 来源:发表于2018-11-20 15:47 被阅读13次

    大纲

    之前的视图函数返回的都是字符串,这样是很不利于网站建设,大家都知道,我们都网页构造三大元素(html,css,js),那这些数据如何通过视图函数返回了?答案就是templates文件。

    • 模板基本使用
    • 变量
    • 过滤器

    基本使用

    这里,首先我们在templates文件夹下,创建一个html文件。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>罗罗攀</title>
    </head>
    <body>
        <h1>Hello</h1>
        <p>这个是模板基本使用</p>
    </body>
    </html>
    

    然后通过视图函数进行映射:

    from flask import Flask,render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    @app.route('/index/')
    def index():
        return render_template('index.html')
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    

    这样我们就完成了一个渲染模板的功能。

    变量

    当然,我们也可以传入变量到模板中,讲上面的代码进行简单修改:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>罗罗攀</title>
    </head>
    <body>
        <h1>Hello {{ name }}</h1>
        <p>这个是模板基本使用</p>
    </body>
    </html>
    
    @app.route('/index/')
    def index():
        return render_template('index.html',name='罗罗攀')
    

    当然,除了基本变量外,列表,字典等数据类型都是可以传入的。我们也可以在模板中定义变量:

    {% set username = 'luopan' %}  #全局变量
    {% with username = 'luopan'  %}
            在里面用
    {% endwith %}
    

    过滤器

    过滤器其实就是对变量的修改,具体的变量过滤器可以去Jinja2文档查看,这里简单介绍下safe,这个的作用为渲染是不转义。这里我们再传入一个变量,为<h1>world</h1>,默认情况会对h1标签转义,然后把h1当做字符串,如图。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>罗罗攀</title>
    </head>
    <body>
        <h1>Hello {{ name }}</h1>
        {{ test }}
        <p>这个是模板基本使用</p>
    </body>
    </html>
    

    我们加上safe过滤器,就会当做为h1标签。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>罗罗攀</title>
    </head>
    <body>
        <h1>Hello {{ name }}</h1>
        {{ test|safe }}
        <p>这个是模板基本使用</p>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:Flask学习笔记之模板(一)

        本文链接:https://www.haomeiwen.com/subject/lbqxqqtx.html