Size: a a a

2021 August 21

DB

Dima Boger in PiterPy Meetup
Custom QuerySet + from_queryset()
источник

Б

Боброний in PiterPy Meetup
Часто вижу такое объявление таблиц и всегда интересно: посему не declarative_base? При создании через Table IDE не сможет автокомплитить атрибуты таблицы, например.
источник

b

betzy in PiterPy Meetup
Мы их меппим на объекты питонячие.
источник

b

betzy in PiterPy Meetup
В Base на самом деле лежит declarative_base()
источник

Б

Боброний in PiterPy Meetup
Ага, вижу, но зачем, если при объявлении через класс оно само?
источник

SS

Sergey Sokolov in PiterPy Meetup
Можно ещё вот так например

https://docs.sqlalchemy.org/en/14/orm/mapping_styles.html#orm-declarative-dataclasses-imperative-table

Но вообще алхимия странная конечно 🌚
источник

Б

Боброний in PiterPy Meetup
источник

K

Kristina in PiterPy Meetup
В будущем легко заменить алхимию на что-то другое, например. Да и тестировать легче, когда между слоями бегают одни и те же объекты.
источник

Б

Боброний in PiterPy Meetup
О, интересно, спасибо.
источник

b

betzy in PiterPy Meetup
источник

b

betzy in PiterPy Meetup
Тут нормально расписаны варианты.
источник

Б

Боброний in PiterPy Meetup
Грац
источник
2021 August 23

YO

Yaroslav Ogloblin in PiterPy Meetup
Доброе утро.
Подскажите, может кто с таким сталкивался, как это задачу решить правильно.
В Flask передаю во вьюху данные в виде multipart/formdata, в объекте request они попадают в атрибут form в виде ImmutableDict. Некоторые значения, это списки, соответственно они приходят в виде:
ImmutableMultiDict([... ('value_name', '[2, 3]'), ('value_name2', '[1]')])
Как мне из request.form получить нормальный словарь, в котором эти значения будут в виде списков, не в строковом представлении?
request.form.to_dict() преобразует эти значения в вид:
{'value_name': '[2, 3]', 'value_name2': '[1]')}
Я нашёл решение такое:
data = request.form.to_dict()
data2 = json.dumps(data)
data3 = data2.replace('"[','[').replace(']"', ']')
data4 = json.loads(data3)
Но это как-то слишком накручено, на мой взгляд, может можно как-то красивее?
источник

DB

Dima Boger in PiterPy Meetup
А что значит "списки"? Кто и почему их так отправляет?
источник

YO

Yaroslav Ogloblin in PiterPy Meetup
у формы есть некоторые значения, в которых должны содержаться несколько целых чисел
источник

YO

Yaroslav Ogloblin in PiterPy Meetup
и они должны читаться именно как набор чисел, а не как строка
источник

b

betzy in PiterPy Meetup
А как data2 выглядит?
источник

YO

Yaroslav Ogloblin in PiterPy Meetup
'{"value_name": "[2, 3]", "value_name2": "[1]"}'
источник

DB

Dima Boger in PiterPy Meetup
formdata чистый key-value, списков там нет 🤔

при такой отправке я бы наверное что-нибудь такое сделал:
deserialized = {key: json.loads(value) for key, value in request.form.to_dict().items}
источник

YO

Yaroslav Ogloblin in PiterPy Meetup
да я в курсе. просто мне надо ещё и файлы отправлять, а тут нужно же тогда formdata

да, это решение покороче, чем у меня :)
Наверное ничего короче я уже и не придумаю.
источник