Я бы порекомендовал просто пройтись по официальному учебнику , и я думаю, что осознание придет, и просветление придет автоматически.
В основном:
Когда вы отправляете запрос: '' 'http://mydomain/myblog/foo/bar'''
Джанго будет:
- разрешить
myblog/foo/bar
для вызова функции / метода через шаблоны, определенные в urls.py
- вызвать эту функцию с запросом в качестве параметра, например,
myblog.views.foo_bar_index(request)
.
- и просто отправьте в браузер любую строку, которую возвращает эта функция. Обычно это ваш сгенерированный HTML-код.
Функция просмотра обычно делает следующее:
- Заполните контекстную подсказку для представления
- Визуализация шаблона с использованием этого контекста
- возвращает полученную строку
Общее представление шаблона позволяет пропустить написание этой функции и просто передать его в контекстный словарь.
Цитирование документации Django:
from django.views.generic import TemplateView
class AboutView(TemplateView):
template_name = "about.html"
Все views.generic. * Классы представлений имеют views.generic.View в качестве своей базы. В документах вы найдете необходимую вам информацию.
В основном:
# urls.py
urlpatterns = patterns('',
(r'^view/$', MyView.as_view(size=42)),
)
MyView.as_view создаст вызываемый объект, который вызывает views.generic.View.dispatch ()
который в свою очередь вызовет MyView.get (), MyView.post (), MyView.update () и т. д.
который вы можете переопределить.
Цитировать документы:
Класс просмотра
отправка (запрос, * args, ** kwargs)
Часть представления view - метод, принимающий запрос
аргумент плюс аргументы и возвращает HTTP-ответ. По умолчанию
реализация проверит метод HTTP и попытается делегировать
метод, который соответствует методу HTTP; GET будет делегирован
get (), POST для post () и т. д.
Реализация по умолчанию также устанавливает request, args и kwargs как
переменные экземпляра, поэтому любой метод в представлении может знать полное
детали запроса, который был сделан для вызова представления.
Большие плюсы классовых представлений (на мой взгляд):
- Наследование делает их сухими .
- Более декларативная форма программирования