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