Enviar y recibir valores por el metodo GET siempre es util para cambiar el comportamiento de nuestros sistemas o simplemente para recibir datos de una busqueda o algo asi.
Lo cierto es que en general el metodo GET solo debe usarse en casos que estemos seguros que los datos que se envian no son sensibles, ya que los datos por metodo GEt se envian por la URL y esta es visible en el navegador.
En este articulo vamos a crear un proyecto Django en Python para mostrar el uso del parametro GET.
En anteriores articulos hemos visto como crear el proyecto en Django, manejo de vistas templates, etc.
Empezando
Ya debemos tener instalado el Django en nuestro PC ahora vamos a crear un proyecto que lo nombre: djforms1
django-admin startproject djforms1
Esto nos va a crear una serie de archivos de django, el archivo djforms1/manage.py contiene el script para correr el proyecto.
Ahora en la carpeta djforms1/djforms1/ vamos a crear la carpeta templates/djforms1 donde guardaremos los templates y las vistas de nuestro proyecto.
Codigo de el Archivo template.html
El archivo template.html contiene el siguiente codigo.
<!DOCTYPE html> <html> <head> <title>Django Forms #1</title> </head> <body> <div class="container"> {% block mycontent %} {% endblock %} </div> </body> </html>
Los bloques de codigo contenidos en {% %} son contenido que sera sustituido por vistas.
Codigo del archivo index-view.html
El archivo index-view.html es nuestra primera vista y sera un formulario con 3 datos, nombre, email y password.
{% extends 'djforms1/template.html' %} {% block mycontent %} <h1>Formulario</h1> <p>Hola esta es una vista</p> <form action="result" method="get"> <label for="your_name">Tu nombre: </label> <input id="name" type="text" name="name" placeholder="Tu nombre"> <br> <label for="your_name">Tu email: </label> <input id="name" type="text" name="email" placeholder="Tu email"> <br> <label for="your_name">Tu password: </label> <input id="name" type="password" name="password" placeholder="Tu password"> <input type="submit" value="Enviar Datos"> </form> {% endblock %}
Lo que hace esta vista es leer los datos del usuario y despues llamar al archivo “result” que veremos mas adelante como una funcion o ruta en python.
El formulario sirve para Enviar los datos via GET, aun que despues veremos que cuando se envian los datos via GET estos se pueden leer en la URL del navegador y es posible editarlos.
Y el siguiente codigo seria el archivo mostrar-view.html
Codigo del archivo mostrar-view.html
El archivo mostrar-view.html se ejecuta en el codigo de la funcion o metodo “result” y lo que se hace es obtener la informacion y despues mostrarla.
La informacion se obtiene en la funcion “result” y posteriormente se pasa como variables a el archivo mostrar-view.html
{% extends 'djforms1/template.html' %} {% block mycontent %} <h1>Mostrar Datos</h1> <p>Tu nombre: {{name}}</p> <p>Tu correo: {{email}}</p> <p>Tu password: {{password}}</p> {% endblock %}
Como pueden ver los valores de las variables las ponemos en dobles llaves, con el nombre de la variable dentro ejemplo: {{variable}}
Ahora vamos a ver el archivo que ejecuta las vistas, en este caso lo nombre startproject.py
Codigo del archivo startproject.py
El archivo startproject.py contiene las funciones para llamar a las vistas, y en la funcion result esta el codigo para Recibir los valores via GET.
Le agregue unos comentarios al codigo para entender un poco mejor.
from django.http import HttpResponse from django.shortcuts import render # Funcion para el metodo principal que muestra el archivo index-view.html que asu vez carga el template template.html def index(request): return render(request, "djforms1/index-view.html", {} ) # Funcion para el metodo result que recibe los datos via GET y despues muestra en el archivo mostrar-view.html que asu vez carga el template template.html def result(request): name = request.GET["name"] # obtener valor de la clave 'nombre' via GET email = request.GET["email"] # obtener valor de la clave 'email' via GET password = request.GET["password"] # obtener valor de la clave 'password' via GET # Una vez obtenido los datos los pasamos en el tercer parametro de la funcion render asociando un nombre y la variable que contiene el valor return render(request, "djforms1/mostrar-view.html", {'name':name, 'email': email, 'password':password} )
Por ultimo pero no menos importante es necesario agregar nuestras URLs o Rutas a el archivo urls.py.
Archivo urls.py
Este archivo contiene todas nuestras rutas y la funcion o metodo que deben ejecutar.
from django.contrib import admin from django.urls import path from . import startproject urlpatterns = [ path("djforms1/", startproject.index, name="index"), path("djforms1/result", startproject.result, name="result") ]
Y listo ahora solo nos queda ejecutar el proyecto y ver los resultados.
Ejecutando el proyecto
Para ejecutar el proyecto vamos a usar el comando.
python3 manage.py runserver
Esto abrira el servidor de django en el puerto 8000, abrimos el navegador en http://127.0.0.1:8000/djforms1/ y listo veremos lo siguiente.
Formulario
Resultados
Y listo con esto terminamos el articulo espero les ayude.