Flask 数值在渲染html时转为文字
本文介绍了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。基本上
定义一个method用来做数值到string的转换
将其加入到
app.jinja_env.filters
在template里面使用
|filter
语法
这篇关于Flask 数值在渲染html时转为文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文