Parâmetros de String de Consulta - Django
No desenvolvimento web com Django, é essencial compreender a diferença entre os parâmetros transmitidos pela URL e aqueles enviados por meio de uma string de consulta. Por exemplo:
Por exemplo, no endereço:
http://127.0.0.1:8000/index/3/Tom/
os segmentos finais, 3/Tom/
http://127.0.0.1:8000/index?id=3&name=Tom
os valores 3
Tom
A string de consulta inicia após o caractere de interrogação (?
id=3
id
3
&
Para acessar os valores de parâmetros de string de consulta em Django, o método request.GET.get()
Exemplo Prático
No arquivo views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("<h2>Página Principal</h2>")
def user(request):
age = request.GET.get("age")
name = request.GET.get("name")
return HttpResponse(f"<h2>Nome: {name} Idade: {age}</h2>")
A função user
age
name
No arquivo urls.py
from django.urls import path
from hello import views
urlpatterns = [
path("", views.index),
path("user/", views.user)
]
Ao acessar o endereço:
http://127.0.0.1:8000/user/?name=Tom&age=22
os parâmetros name
age
"Tom"
22
Definindo Valores Padrão
Quando um parâmetro esperado não é fornecido, é possível atribuir um valor padrão. Isso é feito passando um segundo argumento para o método request.GET.get()
Por exemplo, a função user
from django.http import HttpResponse
def index(request):
return HttpResponse("<h2>Página Principal</h2>")
def user(request):
age = request.GET.get("age", 0)
name = request.GET.get("name", "Indefinido")
return HttpResponse(f"<h2>Nome: {name} Idade: {age}</h2>")
Nesse código, se o parâmetro name
"Indefinido"
age
0
Assim, ao acessar:
http://127.0.0.1:8000/user/
a aplicação exibirá:
Nome: Indefinido Idade: 0