python框架-flask04 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/")
def user_name(name):
    return render_template("user.html", name=name)  # 第一个name是html中的占位符,第二个name是函数的形参


if __name__ == "__main__":
    app.run()

 前端模板


"en">

    "UTF-8">
    Title


    // 这里必须和大括号之间空一个空格
    

hello,{{ name|capitalize }}!

hello,{{ name|capitalize }}!

 

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

python框架-flask04 jinjia2模板_第1张图片 

 二:模板变量

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

  

三:控制结构

@app.route("/user/")
def user_name(id):
    if id == "1":
        info = {"name":"zhang"}
       return render_template("user.html", user=info)
   else:
    return "不符合"

"en">

    "UTF-8">
    Title



    {% if user %}  # if 语句
        Hello,{{ user }}!  # 变量占位符
    {% else %} # else语句
        Hello,Strange!
    {% endif %}  # 结束if语句


 

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

python框架-flask04 jinjia2模板_第2张图片

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

 python框架-flask04 jinjia2模板_第3张图片

 四:循环结构

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

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

 

python框架-flask04 jinjia2模板_第4张图片

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

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

python框架-flask04 jinjia2模板_第5张图片

小技巧:

python框架-flask04 jinjia2模板_第6张图片

五:宏

六:抽取

 

你可能感兴趣的:(python框架-flask04 jinjia2模板)