Frasco de Python – ImmutableMultiDict

MultiDict es una subclase de Dictionary que puede contener múltiples valores para la misma clave, a diferencia de los diccionarios normales. Se utiliza porque algunos elementos de formulario tienen múltiples valores para la misma clave y guarda los múltiples valores de una clave en forma de lista.

Ejemplo:

Python3

from werkzeug.datastructures import MultiDict
  
orders = MultiDict([(1, 'GFG'), (1, 'Geeks')])
print(orders[1])
  
print(orders.getlist(1))

Producción:

GFG
['GFG', 'Geeks']

En este artículo, veremos cómo obtener datos de MultiDict del formulario en Flask.

Escribamos una página HTML simple con una etiqueta de formulario y enviémosla a una ruta de matraz. El objeto request.form que se utiliza para obtener el contenido del formulario durante la solicitud POST es del tipo ImmutableMultiDict.  

Índice.HTML

HTML

<!DOCTYPE html>
<html>
   <head>
      <title>Input Page</title>
   </head>
   <body>
      <form method='POST' action="save">
         <input type="text" name="username" id="uname"/>
         <input type="submit" value="Submit"/>
      </form>
   </body>
</html>

Escribamos otro archivo HML que muestre el tipo de datos proporcionados por la solicitud POST.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
{{userInput}}
</body>
</html>

Creación de la aplicación Flask

Crearemos una aplicación de matraz simple que mostrará el formulario creado anteriormente en la URL http://127.0.0.1:5000/input y mostrará los datos enviados mediante la solicitud POST en la URL http://127.0.0.1: 5000/ahorrar

Python3

from flask import Flask, render_template, request, redirect, url_for
  
app = Flask(__name__)
  
@app.route('/input', methods=['GET'])
def input():
    return render_template('index.html')
  
@app.route('/save', methods=['POST'])
def save():
    
    userInput = request.form
    return render_template('home.html', userInput=userInput)
  
if __name__ == '__main__':
    app.run()

Producción:

Publicación traducida automáticamente

Artículo escrito por bodduganesh912 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *