urlpatterns = patterns('', url(r'^archive/$', 'mysite.views.archive', {'blogid': 3}), url(r'^about/$', 'mysite.views.about', {'blogid': 3}), )
the {'blogid':3} is the third parameter
def url(regex, view, kwargs=None, name=None, prefix=''):
and further pass into return object
RegexURLPattern(regex, view, kwargs, name)
then it will be the default_args of
class RegexURLPattern(LocaleRegexProvider):
def __init__(self, regex, callback, default_args=None, name=None):
LocaleRegexProvider.__init__(self, regex)
then in get_response function, it will retrieve the value as **callback_kwargs
response = callback(request, *callback_args, **callback_kwargs)
=================================
In setting.spy, if we set DEBUG to False , we must set ALLOWED_HOSTS to a valid server. Otherwise 500 error will return .
=================================
When raise Http404 in view function definition, what will happen?
URL resolover will call , with view_type is 404, self.urlconf_module is urls.py under proejct
def _resolve_special(self, view_type): callback = getattr(self.urlconf_module, 'handler%s' % view_type, None) if not callback: # No handler specified in file; use default # Lazy import, since django.urls imports this file from django.conf import urls callback = getattr(urls, 'handler%s' % view_type) return get_callable(callback), {}
django.views.defaults.page_not_found as handler, with default template name 404.html
==========
if we define such function in urls.py under project
def handler404(*args, **kwargs): pass
the system also has a function named def handle_uncaught_exception(self, request, resolver, exc_info):
it will also try to find 500 error handler like 404 mentioned above