Функция format_number
Функция format_number применяется для
форматирования чисел в соответствии с правилами
текущей локали. Первым параметром передаётся
число, которое нужно отформатировать. Вторым
необязательным параметром передаётся локаль,
если её нужно указать явно. Функция возвращает
строку с отформатированным числом.
Обычно функция используется внутри шаблонов Jinja или в обработчиках маршрутов, когда приложение поддерживает несколько языков и региональных настроек. Формат разделителей разрядов и десятичной части зависит от выбранной локали.
Синтаксис
format_number(number, locale=None)
Пример
Давайте отформатируем число для английской локали:
from flask import Flask
from flask_babel import Babel, format_number
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
babel = Babel(app)
with app.app_context():
res = format_number(1234567.89)
print(res)
Результат выполнения кода:
"1,234,567.89"
Пример
Давайте отформатируем то же число для русской локали:
from flask import Flask
from flask_babel import Babel, format_number
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
with app.app_context():
res = format_number(1234567.89)
print(res)
Результат выполнения кода:
"1 234 567,89"
Пример
Давайте применим функцию внутри шаблона Jinja. Сначала подготовим приложение:
from flask import Flask, render_template
from flask_babel import Babel
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
babel = Babel(app)
@app.route('/')
def index():
return render_template('index.html', number=9876543.21)
Теперь создадим сам шаблон:
<p>{{ format_number(number) }}</p>
Результат выполнения кода для адреса /:
<p>9,876,543.21</p>
Смотрите также
-
функцию
format_decimal,
которая форматирует десятичные числа -
функцию
format_currency,
которая форматирует денежные суммы -
функцию
format_percent,
которая форматирует проценты -
функцию
get_locale,
которая возвращает текущую локаль