Atualizado: 14/12/2024

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/, são interpretados como parâmetros da URL (ou parâmetros de rota). Já no endereço:

http://127.0.0.1:8000/index?id=3&name=Tom

os valores 3 e Tom são transmitidos como parâmetros de string de consulta (ou query string).

A string de consulta inicia após o caractere de interrogação (?). Cada parâmetro é formado por um par chave-valor. Por exemplo, em id=3, id é a chave, enquanto 3 é o valor. Parâmetros múltiplos são separados pelo caractere & (ampersand).

Para acessar os valores de parâmetros de string de consulta em Django, o método request.GET.get() é utilizado. Esse método aceita como argumento o nome do parâmetro cujo valor se deseja obter.

Exemplo Prático

No arquivo views.py, o seguinte código define duas funções:

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 extrai os valores dos parâmetros age e name presentes na string de consulta.

No arquivo urls.py, a configuração de rotas pode ser feita da seguinte forma:

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 e age serão preenchidos com os valores "Tom" e 22, respectivamente. Esses valores serão exibidos na resposta da aplicação.

Navegador exibindo parâmetros de string de consulta extraídos pelo Django

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 pode ser ajustada para fornecer valores padrão:

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 não for fornecido, ele será definido como "Indefinido". Da mesma forma, se o parâmetro age estiver ausente, ele será preenchido com o valor 0.

Assim, ao acessar:

http://127.0.0.1:8000/user/

a aplicação exibirá:

Nome: Indefinido  Idade: 0
Navegador exibindo valores padrão definidos no Django
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com