flask-table确实具有几种特定的列类型。例如日期:DateCol。但是没有货币的列类型。因此,现在使用标准Col类型显示数据。现在,您只得到一个十进制。可以,但是我希望使用货币格式。
Table.py
# import things
from flask_table import Table, Col, DateCol
# Declare my table
class MyTable(Table):
classes = ['table', 'table-hover']
id = Col('id')
amount = Col('amount')
date = DateCol('date')
template.html
<div>{{ amounts_table }}</div>
routes.py
@route('/my_table')
def my_table():
table_content = Amounts.query.all()
amounts_table = AmountsTable(table_content)
return render_template('template.html', amounts_table=amounts_table)
结果:
id amount date
1 1,523.78 30-03-2019
我想完成的事情:
id amount date
1 € 1.523,78 30-03-2019
答案 0 :(得分:1)
假设您的amount
数据存储为字符串(例如1,523.78
),则可以执行以下操作:
# Python 3.7
import locale
class CurrencyCol(Col):
def td_format(self, content):
amount = float(content.replace(',', ''))
locale.setlocale(locale.LC_NUMERIC, 'nl_NL')
val = locale.format_string('%.2f', float(amount), 1, 1).replace(' ', '.')
return f'€ {val}'
然后更改表格以使用新的CurrencyCol
:
class MyTable(Table):
classes = ['table', 'table-hover']
id = Col('id')
amount = CurrencyCol('amount')
date = DateCol('date')