Flask 数值在渲染html时转为文字

查看:159
本文介绍了Flask 数值在渲染html时转为文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

models.py

class Group(db.Model):
    __tablename__ = 'groups'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    level = db.Column(db.Integer)

views.py

@main.route('/index', methods=['GET', 'POST'])
def index():
    u = Group.query.all()
    return render_template('index.html', u=u)

index.html

{% for foo in u%}
    {{ u.id}}
    {{ u.name}}
    {{ u.level}}

可以看到Group表里Level是数字字段,因为我对于等级是这么设定的
1 = 普通
2 = 高级
3 = 超级
但在渲染html的时候,只能输出1,2,3 这些数字.
那么有什么办法在渲染过程中自动判断
数字 = 值 然后把值渲染到html呢?

我想要的效果

{% for foo in u %}
    {{u.id}} = 1
    {{u.name}} =username
    {{u.level}} = `普通` 而不是数字1    

解决方案

可以使用jinja2 filter。基本上

  1. 定义一个method用来做数值到string的转换

  2. 将其加入到app.jinja_env.filters

  3. 在template里面使用|filter语法

这篇关于Flask 数值在渲染html时转为文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆