Справочник по API доступа к базе данных Django - ЧАСТЬ 2

Подчеркнем, что при создании объектов QuerySet используется механизм отложенного вызова, то есть сам факт создания QuerySet еще не означает обращения к базе данных. Ни одна из показанных выше строк не приводит к обращениям к базе; вы можете день напролет составлять цепочки из фильтров, но Django не станет выполнять запрос до момента обращения к объекту QuerySet.

Читать

Справочник по API доступа к базе данных Django - ЧАСТЬ 1

API доступа к базе данных в Django является дополнением к API моделей, рассмотренному в приложении А. После того как модель определена, для доступа к базе используется именно этот API. Несколько примеров его использования было приведено в основном тексте книги, а сейчас мы углубимся в детали.

API доступа к базе данных, как и API моделей, считается весьма стабильным, тем не менее разработчики Django все время добавляют новые вспомогательные функции и средства. Поэтому рекомендуем почаще заглядывать в актуальную документацию на сайте http://docs. djangoproject.com/. В этом приложении в качестве сквозного примера мы будем использовать следующие модели, которые могли бы лечь в основу простого приложения для ведения блогов:

Читать

Справочник по моделям Django - ЧАСТЬ 2

height_field

Имя поля модели, в которое при сохранении автоматически будет записана высота изображения.

width_field

Имя поля модели, в которое при сохранении автоматически будет записана ширина изображения.

Помимо специальных атрибутов, имеющихся в классе FileField, класс ImageField содержит еще атрибуты height и width - соответственно высоту и ширину изображения в пикселах.

Читать

Справочник по моделям Django - ЧАСТЬ 1

Основные сведения об определении моделей были приведены в главе 5 и использовались на протяжении всей книги. Однако многочисленные параметры так и остались не рассмотренными. В этом приложении мы расскажем обо всех параметрах моделей.

Отметим, что, хотя описываемый ниже API считается устоявшимся, тем не менее разработчики Django все время добавляют новые вспомогательные функции и средства. Поэтому рекомендуем почаще заглядывать в актуальную документацию на сайте http://docs.djangoproject. сот/.

Читать

Интернационализация Django - ЧАСТЬ 2

{% endblocktrans %}

Для образования множественного числа определите обе формы (единственную и множественную) в теге {% plural %}, который должен находиться между {% blocktrans %} и {% endblocktrans %}. Например:

{% blocktrans count list|length as counter %} There is only one {{ name }} object. {% plural %}

Читать

Интернационализация Django - ЧАСТЬ 1

Фреймворк Django изначально разрабатывался буквально в центре Соединенных Штатов, ведь расстояние от города Лоуренс в штате Канзас до географического центра континентальной части США составляет меньше 55 км. Но, как и большинство проектов с открытым исходным кодом, сообщество Django разрослось и теперь включает людей со всего мира. По мере роста сообщества все большую значимость приобретают вопросы интернационализации и локализации. Поскольку многие разработчики имеют расплывчатое представление об этих терминах, дадим их краткие определения.

Читать

Интеграция Django с системой аутентификации

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

Например, в организации может быть настроен LDAP-каталог, где хранятся имена и пароли всех служащих. И сетевому администратору, и самим пользователям было бы очень неудобно иметь разные учетные записи в LDAP-каталоге и в приложениях Django.

Читать

Интеграция Django с унаследованными базами данных и приложениями

Django лучше всего подходит для разработки с чистого листа, когда проект запускается с нуля. Тем не менее интеграция фреймворка с унаследованными базами данных и приложениями вполне возможна. В этой главе мы рассмотрим несколько стратегий такой интеграции.

Интеграция с унаследованной базой данных

Уровень доступа к базам данных в Django генерируют SQL-схемы, опираясь на программный код Python, но при работе с унаследованной базой данных схема уже существует. В подобных случаях приходится создавать модели на основе уже существующих таблиц. Для этого в составе Django имеется инструмент, умеющий генерировать программный код модели по результатам анализа структуры таблиц в базе данных. Он называется inspectdb и вызывается командой manage, ру inspectdb.

Читать

Как Django обрабатывает запрос

Прежде чем переходить к следующей функции представления, остановимся ненадолго и поговорим о том, как работает Django. Точнее, ответим на вопрос, что происходит за кулисами, когда вы видите сообщение «Hello world» в ответ на запрос к URL-адресу http://127.0.0.1:8000/hello/ в своем броузере.

Все начинается с файла параметров. При выполнении команды python manage.ру runserver сценарий ищет файл settings.ру в том же каталоге, в котором находится файл manage, ру. В этом файле хранятся всевозможные параметры настройки данного проекта Django, записанные заглавными буквами: TEMPLATE_DIRS, DATABASE_NAME и т.д. Самый важный параметр называется R00TJJRLC0NF. Он говорит Django, какой Python-модуль следует использовать в качестве конфигурации URL для данного вебсайта.

Читать

Встроенные дополнительные процессоры Django

В состав Django входят дополнительные процессоры для решения типичных задач. Они обсуждаются в следующих разделах.

Процессоры для поддержки аутентификации

Класс процессора: django. cont rib. auth. middleware. AuthenticationMiddleware.

Этот процессор обеспечивает поддержку аутентификации. В каждый объект HttpRequest, соответствующий входящему запросу, он добавляет атрибут request.user, который представляет текущего аутентифици- рованного пользователя.

Читать