flask控制语句

所有的控制语句都是放在{% … %}中,并且有一个语句{% endxxx %}来进行结束,Jinja中常用的控制语句有if/for…in…

一、条件控制 : if 语句

  • if语句和python中的类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来进行逻辑合并操作
from flask import Flask,render_template

app=Flask(__name__)

context={
    
    
    'username': '老萝卜'
}

@app.route("/")
def if_for():
    return render_template('demo_flaskif.html', **context)


if __name__=="__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask if控制语句演示</title>
</head>
<body>
    {
    
    %if username=="老萝卜"%}
    <p>当前用户是:{
    
    {
    
    username}}</p>
    {
    
    %else%}
     <p>当前用户不是:老萝卜,而是{
    
    {
    
    username}}</p>
    {
    
    %endif%}

</body>
</html>

在这里插入图片描述
在这里插入图片描述
将username改为其它值,‘username’: ‘laoluobo’
在这里插入图片描述
在这里插入图片描述

二、循环控制:for…in…

  • for循环可以遍历任何一个序列包括列表、字典、元组。并且可以进行反向遍历
  • 如果序列中没有值的时候,进入else
  • 并且Jinja中的for循环还包含以下变量,可以用来获取当前的遍历状态
变量 描述
loop.index 当前迭代的索引(从1开始)
loop.index0 当前迭代的索引(从0开始)
loop.first 是否是第一次迭代,返回True或False
loop.last 是否是最后一次迭代,返回True或False
loop.length 序列的长度
  • 另外,不可以使用continue和break表达式来控制循环的执行。
from flask import Flask,render_template

app=Flask(__name__)

context={
    
    
    'books': ['Python', 'Java', 'PHP'],
    'book': {
    
    'Python': 666,
             'Java': 777,
             'PHP': 888
             },
    "netebooks":[]
}

@app.route("/")
def flask_for():
    return render_template('demo_flaskfor.html', **context)

if __name__=="__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask if控制语句演示</title>
</head>
<body>
    <p> 循环显示列表 books:</p>
    {
    
    % for book in books %}          <!--循环显示列表-->
        <p>{
    
    {
    
     book }}</p>
    {
    
    % else %}
        <p>列表books为空列表</p>
    {
    
    % endfor %}
    <hr>

    <p> 循环显示列表 notebooks:</p>
    {
    
    % for book in notebooks %}          <!--循环显示空列表-->
        <p>{
    
    {
    
     book }}</p>
     {
    
    % else %}
        <p>列表notebooks为空列表</p>
    {
    
    % endfor %}
    <hr>

    <p>循环显示字典:</p>
    {
    
    % for i in book %}                 <!--循环显示字典-->
        <p>{
    
    {
    
     i }}</p>
    {
    
    % endfor %}
    <hr>

    <p>循环显示字典的key和value</p>
    {
    
    % for key, value in book.items() %}    <!--循环显示字典的key和value -->
        <p>{
    
    {
    
     key }} -- {
    
    {
    
     value }}</p>
    {
    
    % endfor %}

    <hr>
    <p>显示循环当前遍历状态 </p>
    {
    
    % for book in books %}
        <p>{
    
    {
    
     book }}</p>
        <p>当前迭代的索引(从0开始):{
    
    {
    
     loop.index0 }}</p>
        {
    
    % if loop.first %}
            <p>是否是第一次迭代,返回TrueFalse{
    
    {
    
     loop.first }}</p>
        {
    
    % endif %}
        {
    
    % if loop.last %}
            <p>是否是最后一次迭代,返回TrueFalse{
    
    {
    
     loop.last }}</p>
        {
    
    %endif%}
    {
    
    % endfor %}

</body>
</html>

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/laoluobo76/article/details/109111247