pythondjangourlgeturl-parameters

How to get GET request values in Django?


I am currently defining regular expressions in order to capture parameters in a URL, as described in the tutorial. How do I access parameters from the URL as part the HttpRequest object?

My HttpRequest.GET currently returns an empty QueryDict object.

I'd like to learn how to do this without a library, so I can get to know Django better.


Solution

  • Give URL:
    domain/search/?q=haha
    use:
    request.GET.get('q', 'default').

    q is the parameter, and 'default' is the default value if q isn't found.

    However, if you are instead just configuring your URLconf**, then your captures from the regex are passed to the function as arguments (or named arguments).

    Such as:

    (r'^user/(?P<username>\w{0,50})/$', views.profile_page,),
    

    Then in your views.py you would have

    def profile_page(request, username):
        # Rest of the method