English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Métodos HTTP de Flask

El protocolo HTTP es la base de la comunicación de datos en la World Wide Web. Define los métodos para recuperar diferentes datos desde una URL específica.

La siguiente tabla resume los diferentes métodos HTTP -

NúmeroMétodoDescripción
1GETEnviar datos al servidor sin encriptar, este es el método más utilizado
2HEADComo GET, pero sin cuerpo de respuesta
3POSTUsado para enviar datos de formularios HTML al servidor. Los datos recibidos por el método POST no se almacenan en el caché del servidor.
4PUTReemplazar todas las representaciones actuales de los recursos objetivo con el contenido subido
5DELETEEliminar todas las representaciones de los recursos objetivo dados por la URL

Por defecto, las rutas de Flask responden a solicitudes GET. Pero, se puede cambiar esta preferencia proporcionando un parámetro de método al decorador route().

Para demostrar el uso del método POST en las rutas de URL, primero crea un formulario HTML y envía los datos del formulario a la URL utilizando el método POST.

Guarda el siguiente script en el archivo: login.html

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title>Flask HTTP Request Method Handling</title>
 </head>
    <body>
       <form action = "http://localhost:5000/login" method = "post">
          <p>Introduce el nombre:</p>
          <p><input type = "text" name = "name" value=""/></p>
          <p><input type = "submit" value = "提交" /></p>
       </form>
    </body>
 </html>

Ahora, en el shell de Python, introduce el siguiente script.

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
from flask import Flask, redirect, url_for, request
 app = Flask(__name__)
 @app.route('/success/<name>')
 def success(name):
     return 'welcome %s' % name
 @app.route('/login, methods = ['POST', 'GET'])
 def login():
     if request.method == 'POST':
         user = request.form['name']
         return redirect(url_for('success', name = user))
     else:
         user = request.args.get('name')
         return redirect(url_for('success', name = user))
 if __name__ == '__main__':
     app.run(debug = True)

Después de que el servidor de desarrollo comience a ejecutarse, abra login.html en el navegador, ingrese el nombre en el campo de texto (como: maxsu ) y haga clic Enviar.

Los datos del formulario se envían a la URL especificada por la propiedad action del etiqueta <form>.

http://localhost:5000/login se mapea a la función login(). Ya que el servidor ha recibido los datos a través del método POST, el valor del parámetro 'name' se obtiene de los datos del formulario de la siguiente manera:-

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
user = request.form['name']

Se pasa como parte variable a la URL:/éxito。 El navegador muestra un mensaje de bienvenida en la ventana.

Cambie el parámetro de método de login.html a GET y abra el navegador de nuevo. Los datos recibidos en el servidor son a través del método GET. El valor del parámetro 'name' se obtiene de la siguiente manera: -

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
User = request.args.get('name')

Aquí, args es un objeto de diccionario que contiene una serie de parámetros de formulario y sus valores correspondientes. Al igual que antes, el valor correspondiente al parámetro 'name' se pasará a la URL:/éxito。