
b0g3r
27.09.2017
13:22:44
но про исключительные урлы надо подумать, да)

in favor
27.09.2017
13:23:03
Стоп
class BaseHandler(tornadohandler(забыл))
@login_required
def get(self):
pass
типа так, да?

Google

b0g3r
27.09.2017
13:23:55
не, декоратор на класс

in favor
27.09.2017
13:24:20
хм

Nikolay
27.09.2017
13:29:15
если тоже декоратор - ставь класс!

Aragaer
27.09.2017
13:29:52
если ты тоже любишь декораторы - подписывайся и ставь лайк

in favor
27.09.2017
13:31:19
не могу понять как манки патчнуть этот класс в декораторе?

Nikolay
27.09.2017
13:31:44
класс - легко, инстанс - никак

in favor
27.09.2017
13:34:23
так мы же патчим только один метод в классе, верно?
def p(cls):
def inner(*args, **kwargs):
res = cls(args, **kwargs)
if res.request.is_auth ??
bla-bla
типа так чтоли?
@p
class qwa()
...

Nikolay
27.09.2017
13:50:00
во фласке request - это глобальный тредлокал

Google

in favor
27.09.2017
13:50:29
мы про торнаду

Nikolay
27.09.2017
13:50:52
в торнаде не помню навскидку

in favor
27.09.2017
13:51:41
там реквест лежит в self
но в моей имплементации мы патчим все методы грубо говоря, нет?

Dmitriy
27.09.2017
13:52:03
Так а для чего декоратор?

in favor
27.09.2017
13:53:17
тут сказали, что в торнаде очень просто запилить хук, пропатчив сам класс декоратором
хочу узнать как правильно

Nikolay
27.09.2017
13:54:07

in favor
27.09.2017
13:54:34
всмысле?
мы внутри замыкания создаём объект класса
короче тут нужен @aragaer, чтобы ответить что он имел ввиду

Max
27.09.2017
14:11:47
Господа, день добрый. Вопрос по flask-y. Считается ли нормальным в конфиге app.config хранить те данные, которые относятся сугубо к приложению и которые могут изменятся администратором сервиса? Хранение DB_URI и ADMIN_PASS это понятно, но у меня допустим есть пару парамтеров, которые влияют на бизнес-логику, и которые могут динамически (раз в неделю, в месяц) меняться администратором.
Второй вопрос - имеет ли смысл юзать для этих целей Redis?

Nikolay
27.09.2017
14:13:03

Max
27.09.2017
14:16:26
писать в ямл иногда*

Nikolay
27.09.2017
14:17:17
приложение бесшовно перезапустилось

Max
27.09.2017
14:18:23
каждый и не надо. Поменял файл - тронул uwsgi-файлик
Тыкни пожалуйста носом, где это менять или что почитать на эту тему. Мне надо так, чтобы - я поменял ямл, в кеш записался новый результат из ямла, все следующие реквесты уже имели этот новый результат из кеша.
Кроме как в app.config писать у меня больше идей нет

Google

Nikolay
27.09.2017
14:19:07
это просто файлик, который мониторится демоном, и если ты сделаешь touch %filename% - uwsgi постарается максимально бесшовно перезапустить твое приложение, при этом ямл перечитается с диска

Max
27.09.2017
14:20:53
есть ли гарантия, что перезапускать он будет тогда, когда фласк не выполняет никакой задачи по юзеру?

Nikolay
27.09.2017
14:21:59
ну так легко же потестить
запусти приложуху, натрави на нее siege или ab, во время теста тачни файлик и смотри на число упавших реквестов

Max
27.09.2017
14:22:47
Чем конфиг в ямле лучше чем в ini или json например?

Nikolay
27.09.2017
14:26:03

Max
27.09.2017
14:27:20

Nikolay
27.09.2017
14:27:38

Max
27.09.2017
14:28:37

Timophey
27.09.2017
14:33:06
всем привет )

Nikolay
27.09.2017
14:33:41

Timophey
27.09.2017
14:35:12
подскажите пожалуйста по timezone и datetime
как правильно будет выглядеть время по мск с timezone ?
import pytz
from datetime import datetime
current_timezone = pytz.timezone("Europe/Moscow")
dn = current_timezone.localize(datetime.now())
получаю datetime.datetime(2017, 9, 27, 14, 30, 5, 388899, tzinfo=<DstTzInfo 'Europe/Moscow' MSK+3:00:00 STD>)

Nikolay
27.09.2017
14:36:39

Timophey
27.09.2017
14:36:56
в базе получается должно быть :
2017-09-27 14:30:5.388899+03
?

Nikolay
27.09.2017
14:37:21

Google

Nikolay
27.09.2017
14:37:39
но вообще, судя по всему, да, как-то так

Timophey
27.09.2017
14:38:36
база postgres тип timestamp with timezone

Nikolay
27.09.2017
14:40:33
ну, там и будет timestamp с таймзоной, все верно
что тебе непонятно?

Timophey
27.09.2017
14:40:59
все теперь понял, спасибо, у меня проблемы теперь будут (
в должно время хранится UTC со смещением
если я хочу работать с разными зонами

Andrey
27.09.2017
14:42:18
в базе получается должно быть :
2017-09-27 14:30:5.388899+03
?
ваще-т не выглядит правильным
вот како-то так должно быть
>>> import pytz
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2017, 9, 27, 17, 40, 30, 108807)
>>> datetime.utcnow()
datetime.datetime(2017, 9, 27, 14, 40, 42, 43982)
>>> tz = pytz.timezone('Europe/Moscow')
>>> tz.fromutc(datetime.utcnow())
datetime.datetime(2017, 9, 27, 17, 41, 20, 549218, tzinfo=<DstTzInfo 'Europe/Mos
cow' MSK+3:00:00 STD>)

Admin
ERROR: S client not available

Timophey
27.09.2017
14:43:39
вот у меня такое же сомнение )
и теперь я опять запутался
время должно по utc ведь хранится и для него просто указывается +3 зона
или время указывается по конкретной зоне и дополняется смещением ?

Nikolay
27.09.2017
14:44:59
если надо UTC просто - то храни в UTC, а таймзону не пиши

Andrey
27.09.2017
14:47:55
localize берет naive dt и прилепляет к нему таймзону
если у тебя naive dt не локальное время в таймзоне, то получится херня

Timophey
27.09.2017
14:48:52
понял, спасибо

Max
27.09.2017
14:50:51

Google

Nikolay
27.09.2017
14:51:15

Max
27.09.2017
14:52:25

Nikolay
27.09.2017
14:54:05


John
27.09.2017
14:54:19
Короч, вот что нужно еще знать и уметь для настоящего программиста, помимо чисто программерских штук:
1) Дискретку
2) Линал/ангеом
3) Матан
4) Функан
5) Диффуры
6) Дифгеометрию
7) Топологию
8) Многомерные пространства
9) Уметь при этом доказывать все теоремы из вышеперечисленных дисциплин, а также уметь решать все задачи
10) Химию
11) Органическую химию
12) Общую биологию
13) Микробиологию
14) Историю России
15) Всемирную историю
16) Цитировать всех древнегреческих, римских и китайских философов на зубок
17) Историю династии Кимов
18) Фехтовать
19) Оседлать коня на полном скаку
20) Рисовать как Пикассо
21) Все языки племен Мезоамерики на уровне C1 и не ниже
Если что-то из перечисленного не знаете или не умеете, значит вы не программист, а просто кодомакака клепающая бложеги, тетрисы и пр. простенькие поделки

Robert
27.09.2017
14:54:19
Здравствуйте

Max
27.09.2017
14:54:22

Andrey
27.09.2017
14:54:45

Max
27.09.2017
14:54:50
могу читать в app.config, но это разве не колхоз?

Nikolay
27.09.2017
14:54:52

Robert
27.09.2017
14:54:58
Подскажите пожалуйста, почему может не происходить замена подстроки в строке?

Nikolay
27.09.2017
14:54:58

Max
27.09.2017
14:55:22

Robert
27.09.2017
14:55:22
Код: https://ideone.com/Ryqs5A

Nikolay
27.09.2017
14:56:16

John
27.09.2017
14:57:02

Robert
27.09.2017
14:57:19
Jinja 2 это шаблонизатор. Про него я знаю. Меня интересует возможность изменения готового конфигурационного файла.

in favor
27.09.2017
14:57:25
ты делаешь реплейс
"oldname"

Robert
27.09.2017
14:57:46
Я не хочу при редактировании каждый раз генерировать конфиг