Углубленное изучение представлений и конфигурации URL

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

Конфигурация URL: полезные приемы

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

Читать

Проверка установки Django

По завершении установки потратьте немного времени, чтобы проверить, нормально ли работает только что установленная система. Находясь в оболочке, перейдите в какой-нибудь каталог, не содержащий подкаталог django, и запустите интерактивный интерпретатор Python, введя команду python. Если установка прошла успешно, то вы сможете импортировать модуль django:

Читать

Ваш первый класс формы Django

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

Библиотека «newforms» в Django

В сообществе Django ходят разговоры о некоей библиотеке django. newforms. Но при этом имеется в виду именно библиотека django. forms, рассматриваемая в этой главе.

Читать

Создание формы для ввода отзыва Django

Хотя мы уже несколько раз прошлись по форме для поиска книг и внесли ряд улучшений, по существу она осталась совсем простой: одно единственное поле ‘q’. Из-за этого нам даже не представилось случая воспользоваться имеющейся в Django библиотекой для работы с форма ми. Но для более сложных форм и обработка должна быть более слож ной, поэтому сейчас мы разработаем форму отзыва, которая позволяет пользователю сайта оставить свое замечание и необязательный адрес электронной почты. Проверив полученные данные, мы автоматически отправим по электронной почте сообщение персоналу сайта.

Читать

Простая проверка данных Django

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

•      Введите допустимый адрес электронной почты, ‘foo’ - недопустимый адрес.

Читать

Усовершенствование примера обработки формы

Как обычно, мы начали с простейшего работающего примера. А теперь рассмотрим некоторые проблемы и покажем, как их можно решить.

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

Читать

Пример обработки простой формы

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

В общем случае, с точки зрения разработки, у формы есть две стороны: пользовательский HTML-интерфейс и код для обработки отправленных данных на стороне сервера. С первой частью все просто, вот представление для отображения формы поиска:

Читать

Формы Django

HTML-формы - становой хребет интерактивных веб-сайтов. Это может быть единственное поле для ввода поискового запроса, как на сайте Google, вездесущая форма для добавления комментария в блог или сложный специализированный интерфейс ввода данных. В этой главе мы расскажем, как Django позволяет обратиться к данным, которые отправил пользователь, проверить их и что-то с ними сделать. Попутно мы расскажем об объектах HttpRequest и Form.

Читать

В каких случаях стоит использовать административный интерфейс Django

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

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

Читать

Настроечные классы ModelAdmin

Изменения, о которых мы говорили до сих пор, - blank=True, null=True и verbose_name - производились на уровне модели, а не административного интерфейса. Иначе говоря, эти параметры по сути своей являются частью модели, а административный интерфейс их просто использует; ничего относящегося исключительно к администрированию в них нет.

Читать