LINUX.ORG.RU

Выпуск версии Django 1.6

 , ,


0

5

Рады сообщить о выходе новой версии веб-фреймворка для языка Python — Django 1.6

В этой версии:

  • Улучшенная работа транзакций. Автокоммит на уровне базы данных включен по умолчанию.
  • Постоянные соединения с базой данных. По умолчанию отключено (соединения закрываются по окончанию запроса, как в более ранних версиях). Для включения параметру CONN_MAX_AGE нужно присвоить значение None.
  • Определение тестов в любом модуле, а не только в models.py и tests.py
  • Агрегация дат с учетом часового пояса.
  • Поддержка точек сохранения (savepoints) в Sqlite.
  • Бинарное поле для моделей, позволяющее хранить в базе двоичные данные.
  • Изменения в алгоритме метода save() для моделей, что позволило уменьшить количество запросов к базе данных во время сохранения модели.

Также было произведено множество мелких изменений и исправлений ошибок.

>>> Подробности

★★★★★

Проверено: DoctorSinus ()

Ответ на: комментарий от Binary

Если я поставил этот middleware и у меня в запросе не выполняется никаких изменений в БД (только select'ы), транзакции все равно будут открываться и закрываться? Если да, имеет ли смысл тогда вешать транзакции только на нужные вьюшки, а не на все запросы?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Да, именно так. А т.к. большинство запросов в базе ничего не меняют, ручками проставить транзакции — самое оно.

Binary ★★★★★
()

Раз уж мы здесь собрались, у меня интересный вопрос. Есть у меня ImageWithThumbsField, который расширяет ImageField. В нем есть параметр для передачи списка размеров превьюшек, например ((100, 100), (200, 100)). Потом превьюшки сохраняются в файлы с именем filename_100x100.jpg. Фактический размер превьюшек (так как пропорции сохраняются, одна из сторон меньше указанного размера) нигде не хранится.

А теперь сам вопрос: как бы организовать поля в базе, чтобы хранить эти размеры (для указания оных в html)? Так как количество превьюшек может быть фактически любым, заранее задать в модели список полей я не могу. Или могу?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Сериализация — самое простое. У постгреса есть всякие массивы и hstore, которые можно использовать, и даже строить по ним индексы для выборок, и, вроде, есть какие-то приложения, которые можно использовать в django для них, но если не нужно делать выборок — сериализуй, не задумываясь. Где-то даже готовые picklefield'ы были для этого.

Binary ★★★★★
()
Ответ на: комментарий от vurdalak

А easy-thumbnail не проще использовать? Вообще, клепание превьюшек во время http-запроса, это несколько криво, но все так делают.

Binary ★★★★★
()
Ответ на: комментарий от Binary

У постгреса есть всякие массивы и hstore, которые можно использовать

А если я не хочу привязываться к конкретной БД?

если не нужно делать выборок — сериализуй, не задумываясь

Ок, так и сделаю тогда.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от Binary

А в чем разница? Конкретно этот уже используется, так что не хотелось бы заморачиваться с переходом.

Вообще, клепание превьюшек во время http-запроса, это несколько криво, но все так делают.

Как бы ты сделал?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

А в чем разница? Конкретно этот уже используется, так что не хотелось бы заморачиваться с переходом.

Ну он сильно фичастый, но я не призываю использовать именно его, я просто думал, у тебя свой велосипед.

Как бы ты сделал?

Ну по-хорошему надо делать, например, таск для celery, чтобы в отдельном потоке, да ещё и с разбрасыванием по воркерам это делать. Дело в том, что http-запрос должен завершаться как можно быстрее, и делать вычисления внутри него — не очень здорово. Но я обычно делаю как все :) Для небольшого объёма, обычно, и так годится.

Binary ★★★★★
()
Ответ на: комментарий от Binary

Ну по-хорошему надо делать, например, таск для celery, чтобы в отдельном потоке, да ещё и с разбрасыванием по воркерам это делать.

Пользователь после запроса сразу переходит на страницу, где должен видеть превью. А если оно еще генерится, там будет НЁХ и надо заморачиваться с плейсхолдерами.

Ну он сильно фичастый, но я не призываю использовать именно его, я просто думал, у тебя свой велосипед.

Мне проще эти размеры превьюшек самому навелосипедить, чем заморачиваться с миграцией на easy-thumbnails. Где ж ты раньше был? :D

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Пользователь после запроса сразу переходит на страницу, где должен видеть превью. А если оно еще генерится, там будет НЁХ и надо заморачиваться с плейсхолдерами

Тогда ajax и спиннер.

Binary ★★★★★
()
Ответ на: комментарий от Binary

Ну вот, надо еще со спиннером заморачиваться. А у меня некоторые JS отключают. Короче, буду делать как все.

vurdalak ★★★★★
() автор топика

А когда можно будет штатным образом заменить их кривой шаблонизатор на более нормальный? Ну и за компанию ORM на более другой. Хотя нет, в таком случае из Джанги Pyramid получится, а зачем второй Pyramid, когда один уже есть и работает?

anonymous
()

Сессия в JSON - трешовая идея, слава Богу оставили возможность сохранять в pickle, как раньше было по-дефолту. Менеджмент транзакций - чисто внешнее изменение, по сути ничего не поменялось. Поле для блобов - хорошо, не хватало такого в стандартной поставке. Постоянное соединение - интересная идея, надо будет заценить.

В общем, слабенький релизик такой...

provaton ★★★★★
()
Ответ на: комментарий от anonymous

А что именно мешает использовать любой?

Binary ★★★★★
()
Ответ на: комментарий от umren

воу воу, помедленней php vs python

Где он говорил про php?

x3al ★★★★★
()
Ответ на: комментарий от iloveyoulika

Можно. Но вряд ли фрилансом, скорее на более-менее крупных проектах.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от Binary

У меня socialauth отвалился после апгрейда. Правда я старую версию использую, может в новых они уже не пихают объекты в сессию.

provaton ★★★★★
()
Ответ на: комментарий от iloveyoulika

Уже год работаю с django, scrapy, nodejs - очень рад, всё устраивает... Python - айс, произодительность на ура, пишу интернет магазины; часто клиентов ищу на одеск, сейчас, правда, клиент русский, не гонит меня - и это очень радует. Т.к. от кодинга упорного часто уже тошнит :-( Релиз 1.6 тоже бурных эмоций не вызвал; когда тестировал свои модели на старых проектах в новом 1.6 - были проблемы... Т.ч. как всегда такие релизы дадут новые эмоции только на новых проектах.

menangen ★★★★★
()
Ответ на: комментарий от menangen

от кодинга упорного часто уже тошнит

отличная рекомендация

st4l1k ★★
()
Ответ на: комментарий от anonymous

А когда можно будет штатным образом заменить их кривой шаблонизатор на

более нормальный? Ну и за компанию ORM на более другой.

Это изначально можно было. Подключил нужные модули и вперёд.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.