Question

I'm finding it hard to understand what exactly is passed to the patterns method in Django.

You see, I usually have my urls.py as:

urlspatterns = patterns('example.views',

    (r'/$','func_to_call'),

)

Then in func_to_call I would get everything I want from the request object by using request.path. However on a second take, it's really quite horrific that I'm ignoring Django's slickness for such a longer, less clean way of parsing - the reason being I don't understand what to do!

Let's say you have 3 servers you're putting your Django application on, all of which have a domain name and some variation like server1/djangoApplicationName/queryparams, server2/application/djangoApplicationName and server3/queryparams. What will the urlpattern get passed? The whole url? Everything after the domain name?

Was it helpful?

Solution

The URLconf regex sees only the path portion of the URL, with the initial forward-slash stripped. Query parameters are not matched by the URLconf, you access those via request.GET in your view. So you might write a pattern like this:

urlpatterns = patterns('myapp.views',
    url(r'^myapp/something/$', 'something_view_func')
)

The documentation has more examples and details.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top