Python flask框架(6)

模板变量

在上一篇文章的最后简单介绍了下如何通过模板渲染传递int类型的参数,下文将介绍其他类型的如何传递。

列表

@app.route('/showusers')
def show():
    name='tuantuan'
    #j=json.dumps(users)
    friends=['沈巍','面面','龙龙']
    return render_template('show.html',name=name,friends=friends)


信息展示

用户名是{ {name}}
{ {friends.0}} { {friends[0]}} { {friends[:2]}}

Python flask框架(6)_第1张图片
可以看出,传过去后,在html中支持对应的列表访问操作。

字典

@app.route('/showusers')
def show():
    name='tuantuan'
    #j=json.dumps(users)
    friends=['沈巍','面面','龙龙']
    dict1={'apple':'red','gift':'pink','love':'pink'}
    return render_template('show.html',name=name,friends=friends,dict1=dict1)
    
{ {dict1.gift}} { {dict1.get('apple')}}

两种在html中访问字典的方式
在这里插入图片描述

对象

class Girl:
    def __init__(self,name,gender='女'):
        self.name=name
        self.gender='女'
    def __str__(self):
        return self.name
@app.route('/showusers')
def show():
    goodone=Girl('aiyou')
    return render_template('show.html',goodone=goodone)


{ {goodone}}---{ {goodone.gender}}

Python flask框架(6)_第2张图片
若直接goodone则默认返回__str__;若指定属性则返回指定的。

__str__方法

当直接输出对象时,如果定义了__str__(self),那么就会打印这个方法中return的值。(即对这个对象的描写)。

其他类型

string,int,list,dict,对象,set,tuple均可以,这里不再一一做举例。

控制块

那么如何能够将展示的信息以表格的形式展现,接下来我们引入控制块。

html中的注释

这是单纯html网页使用的注释。


这是服务器能够识别的注释。

{# ul……li #}

示例1

@app.route('/showusers')
def show():
    wawo=['haha','xixi','heihei','ye','luelue']
    return render_template('show.html',wawo=wawo)

信息展示(控制块方法示例)

    {% for wa in wawo %}
  • { {wa}}
  • {% endfor %}

Python flask框架(6)_第3张图片

  • {% %}中就是服务器能够识别的代码;
  • 要注意,在html文件中,只要是传入的变量一定要记得加{ {}}。

示例1改进

指定长度大于4的字符串更改样式




    
    哈哈小伙伴
    


信息展示(控制块方法示例)

    {% for wa in wawo %}
  • { {wa}}
  • {% endfor %}
    {% for wa in wawo %} {% if wa|length>4 %}
  • { {wa}}
  • {% else %}
  • { {wa}}
  • {% endif %} {% endfor %}

Python flask框架(6)_第4张图片

示例2

表格形式展示


    {% for user in users %}
        
    {% endfor %}

{ {user.name}} { {user.password}}

Python flask框架(6)_第5张图片

示例2改进

(以下先简写以下框架)

引入一些格式

LOOP的使用

过滤器

过滤器其实就是对函数的使用
比如len()这种函数在html文件中即使加{ {}}但是依旧不支持,所以使用过滤器来达到同样的函数效果

在html文件中:{ {girl.append(“gg”)}}会导致返回值None,所以不建议增删改查在模板里去做,而是在后端做完处理后再模板渲染。

过滤器的使用方法:
{ {变量名|过滤器}}

常见过滤器:
1.safe:禁用转义
2.capitalize:首字母大写

你可能感兴趣的:(flask,线性代数,矩阵,python)