РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
513 of 643 menu

Метод timezoneselector

Метод timezoneselector применяется к объекту Babel и принимает декоратор, который оборачивает функцию выбора часового пояса. Функция должна возвращать строку с именем часового пояса, например 'Europe/Moscow' или 'UTC'. Flask-Babel вызывает эту функцию при каждом запросе перед форматированием даты и времени, чтобы определить, в каком часовом поясе находится пользователь.

Первым параметром декоратор принимает саму функцию выбора часового пояса. Функция не получает аргументов и должна вернуть строку. Если функция вернёт None, будет использован часовой пояс по умолчанию, заданный в конфигурации BABEL_DEFAULT_TIMEZONE.

Синтаксис

@babel.timezoneselector def timezone_selector(): return 'timezone_name'

Пример

Давайте создадим приложение Flask с Babel и настроим простой выбор часового пояса:

from flask import Flask, render_template from flask_babel import Babel app = Flask(__name__) app.config['BABEL_DEFAULT_TIMEZONE'] = 'UTC' babel = Babel(app) @babel.timezoneselector def get_timezone(): return 'Europe/Moscow' @app.route('/') def index(): return render_template('index.html')

Теперь создадим шаблон, который выведет текущий часовой пояс:

<p>{{ get_timezone() }}</p>

Результат выполнения кода:

Europe/Moscow

Пример

Давайте выберем часовой пояс на основе параметра URL:

from flask import Flask, render_template, request from flask_babel import Babel app = Flask(__name__) app.config['BABEL_DEFAULT_TIMEZONE'] = 'UTC' babel = Babel(app) @babel.timezoneselector def get_timezone(): timezone = request.args.get('timezone') if timezone: return timezone return 'UTC' @app.route('/') def index(): return render_template('index.html')

Создадим шаблон для вывода выбранного часового пояса:

<p>{{ get_timezone() }}</p>

Результат выполнения кода для адреса /?timezone=Asia/Tokyo:

Asia/Tokyo

Пример

Давайте используем часовой пояс из сессии пользователя:

from flask import Flask, render_template, session from flask_babel import Babel app = Flask(__name__) app.secret_key = 'secret' app.config['BABEL_DEFAULT_TIMEZONE'] = 'UTC' babel = Babel(app) @babel.timezoneselector def get_timezone(): return session.get('timezone', 'UTC') @app.route('/') def index(): session['timezone'] = 'Europe/London' return render_template('index.html')

Создадим шаблон для отображения часового пояса:

<p>{{ get_timezone() }}</p>

Результат выполнения кода:

Europe/London

Смотрите также

  • класс Babel,
    который управляет интернационализацией
  • метод localeselector,
    который выбирает локаль пользователя
  • метод init_app,
    который инициализирует Babel для приложения
  • функцию get_timezone,
    которая возвращает текущий часовой пояс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить