Flask + Jinja: Преобразувайте UTC в местна часова зона

Имам приложение Flask, което съхранява часовата зона на потребителя (от pytz.common_timezones) в база данни.

Съхранявам записи в DB, ​​като използвам UTC клеймо за време.

Искам да покажа тези записи на крайните потребители според тяхната часова зона.

Най-добре ли е да:

  1. Итерация през всеки запис и преобразуване на часовата зона, преди да я предадете на render_template?

    --or--

  2. Да дефинирам макрос в моя изглед, който извършва това преобразуване в самия шаблон?

Има ли най-добри практики за преобразуване на наивна часова зона в местна часова зона?


person okoboko    schedule 27.06.2014    source източник
comment
свързано: Как да преобразувам utc datetime на python в локална datetime, като използвам само стандартна библиотека на python? (също показва pytz примерен код ).   -  person jfs    schedule 05.08.2014


Отговори (2)


Мисля, че тук имате два отделни въпроса. Истинският въпрос е как най-добре да манипулирате вашия шаблон - който може да бъде зададен за всяка манипулация на стойност. Ще оставя някой друг да отговори на това.

По отношение на втория въпрос:

Има ли най-добри практики за преобразуване на наивна часова зона в местна часова зона?

Това няма много смисъл. „наивен“ в смисъла на Python означава „непознат за часовата зона“ - така че всъщност няма такова нещо като „наивна часова зона“.

Ако имате предвид конвертиране от наивен datetime към осъзнат datetime, тогава най-добрият съвет е да използвате функцията localize, както е описано в документацията на pytz. Не се опитвайте сами да го присвоите на свойството tzinfo.

person Matt Johnson-Pint    schedule 27.06.2014

При събиране на боклук (~DisposableMarshalByRefObject()) редът на това събиране (this - първо, след това -disposeLock или disposeLock първо, след това this) не е определен.
person Gang Yin    schedule 06.03.2019