Fork me on GitHub
24/3/2007

Django-0.96

Вышла новая версия Django, 0.96. Краткий обзор основных новинок.

Работа БД

Во-первых, Django стал использовать новый MySQLdb (старше 1.2.1p2). Однако, если нет возможности обновить MySQLdb, то в настройках БД DATABASE_ENGINE проекта можно указать обратно совместимый mysql_old. Во-вторых, Django научился использовать SQLite в Python 2.5. В-третьих, поменялись имена констрейнтов. Так что если вы используете такие команды manage.py как reset для генерации SQL-запросов, то на старых БД скорее всего получите сообщение об ошибке. Разработчики Django рекомендуют вручную адаптировать сгенерированные SQL-запросы.

Администрирование

В первую очередь здесь стоит отметить возможность в админке поменять пароль пользователю напрямую, не генерируя ему хеш. Сюда же можно отнести и новые команды к manage.py: dumpdata и loaddata - для выгрузки и загрузки данных. Есть возможность использовать форматы сериализации, поддерживаемыми Django (xml, json и Python-примитивы). Команда sqlinitialdata переименована в sqlcustom для более прозрачнго использования (loaddata для данных, sqlcustom для видов, триггеров, хранимых процедур и др.) Удалена команда install, предлагается использовать syncdb.

Новые формы

Добавлены новые формы (newforms), старые еще доступны в этой версии как "просто формы" (forms), но начиная со следующего релиза будут только как "старые формы" (oldforms). Разработчики активно продвигают новинку, однако старые еще рано выбрасывать на свалку истории: в generic views они до сих пор используются.

Объекты в URLconf

Теперь в URLconf можно (и нужно) указывать не только строку "с адресом" view, но и явно передавать ее объект. Это не только способствует снижению количества ошибок, но и позволяет применять декораторы (например, login_required) к generic views.

Тесты

Django в новой версии предлагает хорошую поддержку юнит-тестов, док-тестов и интеграционных тестов. Думаю, об этом подробнее напишу в отдельной статье. В целом, если вы используете Django с SVN, то обновление пройдет гладко. Если же вы используете 0.95 или 0.95.1, то могут возникнуть некоторые сложности (к примеру, 0.96 более строго относится к шаблонам). Более подробно и с примерами - на сайте Django.

Комментарии

Все статьи