Первая страница, созданная в Django: Hello World

Для начала создадим веб-страницу, которая выводит пресловутое сообщение «Hello world».

Чтобы опубликовать такую страницу без помощи веб-фреймворка, достаточно просто ввести строку «Hello world» в текстовый файл, назвать его hello.html и сохранить в каком-нибудь каталоге на веб-сервере. Отметим, что при этом определяются два ключевых свойства страницы: ее содержимое (строка "Hello world") и URL (http://www.example.com/hello. html или, быть может, http://www.example.com/files/hello.html, если вы решили поместить файл в подкаталог).

Читать

Прямое выполнение SQL-запросов Django

Интерфейс доступа к базе данных в Django имеет определенные ограничения, поэтому иногда возникает необходимость напрямую обратиться к базе данных с SQL-запросом. Это легко сделать с помощью объекта django.db.connection, который представляет текущее соединение с базой данных. Чтобы воспользоваться им, вызовите метод connection. cursor() для получения объекта-курсора, затем метод cursor.execute(sql, [params]) - для выполнения SQL-запроса и, наконец, один из методов cursor.fetchone() или cursor.fetchall() для получения записей. Например:

Читать

Методы модели Django

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

Методы модели хорошо подходят для инкапсуляции всей бизнес-логики в одном месте, а именно в модели. Проще всего объяснить это на примере. Рассмотрим модель, в которой имеется несколько пользовательских методов:

Читать

Менеджеры Django

В инструкции Book.objects.all() objects - это специальный атрибут, посредством которого выполняется запрос к базе данных. В главе 5 мы кратко остановились на нем, назвав менеджером модели. Теперь пришло время более детально изучить, что такое менеджеры и как с ними работать.

В двух словах, менеджер модели - это объект, с помощью которого Django выполняет запросы к базе данных. Каждая модель Django имеет по меньшей мере один менеджер, и вы можете создавать свои менеджеры для организации специализированных видов доступа.

Читать

Изменение схемы базы данных Django

В главе 5, рассказывая о команде syncdb, мы отметили, что она создает таблицы, еще не существующие в базе данных, но не синхронизирует изменения в модели и не удаляет таблицы при удалении моделей. После добавления нового или изменения существующего поля в модели, а также после удаления самой модели вам придется вручную внести изменения в схему базы данных. В этом разделе мы расскажем, как это сделать.

Читать

Углубленное изучение моделей Django

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

Связанные объекты

Напомним, как выглядят модели для базы данных с информацией о книгах, авторах и издательствах из главы 5.

Читать

Настройка системы шаблонов Django для работы в автономном режиме

Примечание —————————————————————————

Этот раздел представляет интерес только для читателей, намеревающихся использовать систему шаблонов в качестве компонента вывода в каком-то другом приложении. Если вы работаете с шаблонами только в контексте Django, то можете этот раздел спокойно пропустить.

Читать

Собственные загрузчики шаблонов Django

Встроенные в Django загрузчики шаблонов (описаны в разделе «Загрузка шаблонов - взгляд изнутри») обычно полностью отвечают нашим потребностям, но совсем не сложно написать свой загрузчик, если потребуется какая-то особая логика. Например, можно реализовать загрузку шаблонов из базы данных, или непосредственно из репозитория Subversion, используя библиотеки доступа к репозиториям Subversion для языка Python, или (как мы скоро покажем) из ZIP-архива.

Читать

Расширение системы шаблонов Django

Теперь, когда вы кое-что узнали о внутреннем устройстве системы шаблонов, посмотрим, как ее можно расширить за счет дополнительного кода.

Чаще всего расширение производится путем создания пользовательских шаблонных тегов и (или) фильтров. Хотя в язык шаблонов Django встроено много тегов и фильтров, вы, скорее всего, постепенно создадите собственную библиотеку с учетом своих потребностей. К счастью, это совсем не сложно.

Читать

Загрузка шаблонов Django - взгляд изнутри

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

В Django предусмотрено два способа загрузки шаблонов:

•    django.template.loader.get_template(template_name): get_template возвращает откомпилированную версию (объект Template) шаблона с заданным именем. Если указанного шаблона не существует, то возбуждается исключение TemplateDoesNotExist;

Читать