flask学习笔记代码篇-10

flask10-渲染模板和控制代码块


本章内容:装饰器形式添加自定义过滤器、渲染模板、控制代码块

from flask import Flask, render_template

app = Flask(__name__)



@app.route('/')

def index():

    return 'index'



# 以装饰器的形式添加自定义过滤器

@app.template_filter('lireverse')

# 方式二 app.add_template_filter(do_lireverse, 'lireverse')第一个参数函数名,第二个参数过滤器名

def do_lireverse(value):

    tem_li = list(value)

    tem_li.reverse()

    return tem_li



# 渲染模板

@app.route('/demo1')

def demo1():

    urlstr = 'www.baidu.com'

    myint = 18

    mylist = [1, 2, 's', 'qwq', {'mame': 'laowang'}]

    mydict = {'name': 'hm', 'url': 'www.baidu.com'}

    return render_template('01-index.html', url_str=urlstr, url_int=myint, url_list=mylist, url_dict=mydict)



# 控制代码块

@app.route('/demo2')

def demo2():

    my_list = [

        {

            "id": 1,

            "value": "我爱工作"

        },

        {

            "id": 2,

            "value": "工作使人快乐"

        },

        {

            "id": 3,

            "value": "沉迷于工作无法自拔"

        },

        {

            "id": 4,

            "value": "日渐消瘦"

        },

        {

            "id": 5,

            "value": "以梦为马,越骑越傻"

        }

    ]

    return render_template('03-temp.html', my_list=my_list)



if __name__ == '__main__':

    app.run(port='3333', debug=True)

 

01-index.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>index</title>

</head>

<body>

这是模板

只是首页

{{ url_str }}

{{ url_list }}

{{ url_list.2 }}

{{ url_dict }}

{{ url_dict.url }}

{{ url_int + url_list.1 }}

<hr>

{%  for num in url_list %}

    {{ num }},

{% endfor%}

<hr>
{{ url_str | upper}}

{{ url_str | reverse}}

{{ url_str | reverse | upper | title}}

{{ url_str | lireverse}}

</body>

</html>

 

03-temp.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>temp</title>

</head>

<body>

{{ werty }}

<ul>

    {# for 后面的条件如果成立,那么就会执行 for 循环内部的代码 #}

    {% for item in my_list if item.id != 5 %}

        {% if loop.index == 1 %}  {# 代码当前循环第1个元素(从1开始) #}

            <li style="background: orange">{{ item['value'] }}</li>

        {% elif loop.index == 2 %}

            <li style="background: green">{{ item['value'] }}</li>

        {% elif loop.index == 3 %}

            <li style="background: red">{{ item['value'] }}</li>

        {% else %}

            <li style="background: purple">{{ item['value'] }}</li>

        {% endif %}

    {% endfor %}

</ul>

</body>

</html>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值