Дополнительные процессоры Django
Опубликовано Четверг, Февраль 16, 2012 - admin. В рубрике Django Метки: Django, request, дополнительных, запроса, объект, процессор, процессоров
Иногда возникает необходимость реализовать дополнительную обработку всех без исключения запросов, обслуживаемых Django. Такая обработка может понадобиться, чтобы модифицировать запрос перед передачей его в функцию представления, записать в журнал какие- нибудь сведения о запросе для отладки и т. д.Это можно сделать с помощью механизма дополнительных процессоров, которые подключаются к процедуре обработки ...
Пользователи и аутентификация Django
Опубликовано Суббота, Февраль 11, 2012 - admin. В рубрике Django Метки: contrib, Django, import, request, пользователь, пользователя
Механизм сеансов обеспечивает возможность сохранения данных между отдельными запросами. Но надо еще научиться использовать сеансы для аутентификации пользователей. Разумеется, мы не можем слепо верить тому, что пользователь говорит о себе, поэтому необходимо как-то проверить подлинность этой информации.Естественно, в Django есть средства решения этой типичной задачи (как и многих других). Система ...
С учетом всех ограничений и потенциальных уязвимостей становится понятно, что cookies и сохраняемые сеансы являются примерами болевых точек веб-разработки. Но так как фреймворк Django стремится быть эффективным целителем, в него входит подсистема сеансов, предназначенная для преодоления этих трудностей.Эта подсистема позволяет сохранять произвольные данные о каждом посетителе сайта. Данные хранятся на ...
Пора признаться: до сего момента мы осознанно игнорировали один важный аспект веб-разработки. До сих пор мы представляли посетителей сайта как безликую анонимную массу, налетающую на наши любовно спроектированные страницы.Но на самом деле это, конечно, неверно. За каждым броузером, обращающимся к нашему сайту, стоит конкретный человек (ну, по большей части). И ...
Объект RequestContext и контекстные процессоры
Опубликовано Среда, Февраль 1, 2012 - admin. В рубрике Django Метки: context_processors, Django, ip_address, request, RequestContext, процессор, процессоры
Для отображения шаблона необходим контекст. Обычно таковым является экземпляр класса django.template.Context, но в Django имеется также специальный подкласс django.template.RequestContext, который действует несколько иначе. RequestContext автоматически помещает в контекст несколько дополнительных переменных, например, объект HttpRequest или информацию о текущем аутентифицированном пользователе.Объект RequestContext можно использовать в тех случаях, когда необходимо передать один ...
Обертывание функций представления
Опубликовано Вторник, Январь 31, 2012 - admin. В рубрике Django Метки: request, requires_login, return, представления, проверки, убрать, функцию
Последний прием, который мы рассмотрим, опирается на относительно редко используемую возможность Python. Предположим, что в разных представлениях многократно встречается один и тот же код, например:def my_view1(request):if not request.user.is_authenticated():return HttpResponseRedirect('/accounts/login/') tt . ..return render_to_response('templatel.html')def my_view2(request):if not request.user.is_authenticated():return HttpResponseRedirect('/accounts/login/') tt . ..return render_to_response('template2.html')def my_view3(request):if not request.user.is_authenticated():return HttpResponseRedirect('/accounts/login/') tt . ..return render_to_response('template3.html')Здесь в ...
Раз уж мы заговорили о ветвлении по методу запроса, покажем, как это можно элегантно осуществить. Рассмотрим следующую строку в конфигурации URL:# urls.руfrom django.conf.urls.defaults import *from mysite import viewsurlpatterns = patternsC', tt . ..(r'~somepage/$', views.some_page), tt ...)tt views, pyfrom django.http import Http404, HttpResponseRedirectfrom django.shortcuts import render_to_responsedef some_page(request):if request.method == 'POST': do_somethmg_for_post() ...
Хотя мы уже несколько раз прошлись по форме для поиска книг и внесли ряд улучшений, по существу она осталась совсем простой: одно единственное поле 'q'. Из-за этого нам даже не представилось случая воспользоваться имеющейся в Django библиотекой для работы с форма ми. Но для более сложных форм и обработка должна ...
Как обычно, мы начали с простейшего работающего примера. А теперь рассмотрим некоторые проблемы и покажем, как их можно решить.Во-первых, обработка пустого запроса в представлении searchQ явно недостаточна - мы просто выводим сообщение «Введите поисковый запрос», заставляя пользователя нажать кнопку «Назад» в броузере. Это крайне непрофессионально, и, если вы сделаете нечто ...
Все на том же примере базы данных, содержащей информацию о книгах, авторах и издательствах, мы создадим простое представление, которое позволит отыскать книгу по названию.В общем случае, с точки зрения разработки, у формы есть две стороны: пользовательский HTML-интерфейс и код для обработки отправленных данных на стороне сервера. С первой частью все ...