zoukankan      html  css  js  c++  java
  • flask之jinjia2模板

    一:渲染模板

    app.run(debug=True)  开启debug模式,flask框架自动提示错误提示的页面显示。

    视图函数

    from flask import Flask
    from flask import request
    from flask import redirect
    from flask.ext.script import Manager
    from flask import render_template
    
    app = Flask(__name__)
    
    
    @app.route("/user/<name>")
    def user_name(name):
        return render_template("user.html", name=name)  # 第一个name是html中的占位符,第二个name是函数的形参
    
    
    if __name__ == "__main__":
        app.run()

     前端模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        // 这里必须和大括号之间空一个空格
        <h1>hello,{{ name|capitalize }}!</h1>
        <h1>hello,{{ name|capitalize }}!</h1>
    
    </body>
    </html>

    访问 127.0.0.1:5000/user/zhang 显示:

     

     二:模板变量

      前端里面的{{ name }} 就是一个占位符,@app.route("/user/<name>")  name是一个可变可接受的参数,浏览器传递给视图函数,视图函数通过形参,传给给模板,模板再传递给user.html中的name展位符。

      

    三:控制结构

    @app.route("/user/<id>")
    def user_name(id):
        if id == "1":
            info = {"name":"zhang"}
           return render_template("user.html", user=info)
       else:
        return "不符合"
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
        {% if user %}  # if 语句
            Hello,{{ user }}!  # 变量占位符
        {% else %} # else语句
            Hello,Strange!
        {% endif %}  # 结束if语句
    
    </body>
    </html>

    输入:127.0.0.1:5000/user/1显示:

    输入:127.0.0.1:5000/user/2显示:

     

     四:循环结构

      满足条件后,给jinjin2模板传递列表,进行循环遍历

    @app.route("/user/<id>")
    def user_name(id):
        if id == "1":
            li = ["zhang","wang","li","zhao"]
            return render_template("user.html",comments=li)
        else:
            return "不符合"
    <ul>
        {% for comment in comments %}
        <li>{{ comment }}</li>
        {% endfor %}
    </ul>

    需求:把 zhang变成红色,wang变成橙色,li变成黄色,zhao变成绿色。类似于下图的样子

    <ul>
        {% for comment in comments %}
            {% if loop.index == 1 %}
                <li style="background: red">{{ comment }}</li>
            {%endif%}
    
            {% if loop.index == 2 %}
                <li style="background: blue">{{ comment }}</li>
            {%endif%}
    
            {% if loop.index == 3 %}
                <li style="background: yellow">{{ comment }}</li>
            {%endif%}
    
            {% if loop.index == 4 %}
                <li style="background: green">{{ comment }}</li>
            {%endif%}
    
        {% endfor %}
    </ul>

    小技巧:

    五:宏

    六:抽取

  • 相关阅读:
    【Qt开发】 V4L2_CAP_VIDEO_OVERLAY与V4L2_CAP_VIDEO_CAPTURE的区别
    【Qt开发】QThread 实用技巧、误区----但文档中没有提到
    【Qt开发】QThread 实用技巧、误区----但文档中没有提到
    【Qt开发】事件循环与线程 二
    【Qt开发】事件循环与线程 二
    【Qt开发】事件循环与线程 一
    【Qt开发】事件循环与线程 一
    【Qt开发】QThread介绍
    【Qt开发】QThread介绍
    【Linux开发】如何查看Linux kernel的内置模块驱动列表和进程ID
  • 原文地址:https://www.cnblogs.com/meloncodezhang/p/11720849.html
Copyright © 2011-2022 走看看