Reputation: 4043
Suppose I have a url that has php style parameters, that is:
http://example.com/blah?param1=val1¶m2=val2
And, I want to place their values into the generated HTML of the template.
How do I achieve this?
Upvotes: 37
Views: 48266
Reputation: 1
For example, if you access the url below:
https://example.com/?fruits=apple&meat=beef
Then, you can get the parameters in views.py
as shown below. *My answer explains it more:
# "views.py"
from django.shortcuts import render
def index(request):
print(request.GET['fruits']) # apple
print(request.GET.get('meat')) # beef
print(request.GET.get('fish')) # None
print(request.GET.get('fish', "Doesn't exist")) # Doesn't exist
print(request.GET.getlist('fruits')) # ['apple']
print(request.GET.getlist('fish')) # []
print(request.GET.getlist('fish', "Doesn't exist")) # Doesn't exist
print(request.GET._getlist('meat')) # ['beef']
print(request.GET._getlist('fish')) # []
print(request.GET._getlist('fish', "Doesn't exist")) # Doesn't exist
print(list(request.GET.keys())) # ['fruits', 'meat']
print(list(request.GET.values())) # ['apple', 'beef']
print(list(request.GET.items())) # [('fruits', 'apple'), ('meat', 'beef')]
print(list(request.GET.lists())) # [('fruits', ['apple']), ('meat', ['beef'])]
print(request.GET.dict()) # {'fruits': 'apple', 'meat': 'beef'}
print(dict(request.GET)) # {'fruits': ['apple'], 'meat': ['beef']}
print(request.META['QUERY_STRING']) # fruits=apple&meat=beef
print(request.META.get('QUERY_STRING')) # fruits=apple&meat=beef
return render(request, 'index.html')
Upvotes: 1
Reputation: 2122
Suppose you have GET Method like this -
http://djangopmt.localhost/tasks/?project=1&status=3&priority=High&search=StudyGyaan.com
We can get the URL Parameters like this in Django Template -
{{request.GET.project}}
{{request.GET.status}}
{{request.GET.priority}}
{{request.GET.search}}
And if you want to get URL parameter in Django Views then you can get it like this -
request.GET.get('project', None)
request.GET.get('status', None)
request.GET.get('priority', None)
request.GET.get('search', None)
Upvotes: 8
Reputation: 382822
{{ request.resolver_match.kwargs.argument }}
for function arguments passed to the view as:
def myview(request, argument):
Tested on Django 1.9.
Upvotes: 25
Reputation: 25936
{{request.GET.param1}}
in the template. (Using RequestContext)
request.GET.get('param1', None)
in the view.
Upvotes: 71