Спасибо за ответ. Последний пункт задачи.
Много разных есть путей для этого. Не могу решить какой лучше.
Ну то есть что это должно в идеале быть: input, li, button, может использовать какую-нибудь готовую
paggination библиотеку и т.д.
На счет второго варианта, я не специалист в sql-инъекциях, но если данные date и date_format будут приходить от пользователей и не проверятся, то теоретически тут можно раскрутить инъекцию.
Да, я понял теперь на счет __repr__. Логично.
Я смотрел лекцию намедни: https://events.yandex.ru/lib/talks/2511/
Там сказали, что более канонично использовать print, везде где это только можно.
А не лезть в дебаг.
Вот послушался гуру :)
Ну прикол, конечно.
В общем так:
1) for i in items: print(i.UserItem.key) - печатает value. Все ок.
2) print(items) - печатает sql запрос. И все что находится внутри items, все данные, кроме key = value. Это меня сильно смущало, я поэтому даже до темплейта не доходил.
Думал, что раз такая пьянка, нет смысла дальше кружить темплейты.
3) Передал items=items в темлпейт. Там все распечаталось как надо.
U = User
I = UserItem
items = db.session.query(U, I).join(I).filter(U.id == user_id)
for i in items:
i.UserItem.key = 'value'
print(items) pastebin.com/ACHYFjbM
при распечатке в print, соответственно нету ключа key со значением value
На счет добавления нового ключа
"никто не мешает вам просто сделать i.U.key = value в цикле",
а вот не работает таким образом.
ничего не добавляется.
В items - после цикла нету ключа key, со значением value
Для отладки удобно. Сразу видно, что пришло.
Но получается перед выходом в продакшен надо будет поудалять .all()
Вот жеж как оно бывает. Потом бы думал и гадал почему подтормаживает :)
- Да, это интересная идея. Даже не задумывался о таком. Спасибо.
Хотя все получение из мемкеша сводится к одной строке:
cached = cache.get(i.UserItem.id)
- На счет .all(), без него никуда, print(items) - не печатает. Но если в цикле крутить и попробовать распечатать print(i.UserItem.id), тогда и без .all() работает. Может это с версиями как-то связано.
Вот что pip freeze показывает у меня:
Flask==0.10.1
Flask-Cache==0.13
Flask-Migrate==1.3.0
Flask-Mobility==0.1.1
Flask-PyMemcache==0.0.5
Flask-SQLAlchemy==2.0
Flask-Script==2.0.5
Jinja2==2.7.3
Mako==1.0.0
MarkupSafe==0.23
SQLAlchemy==0.9.8
Werkzeug==0.9.6
alembic==0.7.3
flask-memcache-session==2.0
gunicorn==19.1.1
inflect==0.2.4
itsdangerous==0.24
mysql-connector-python==2.0.2
pylibmc==1.4.1
pymemcache==1.2.8
python3-memcached==1.51
requests==2.5.1
six==1.9.0
sqlacodegen==1.1.5
transliterate==1.7.3