Python Flask – ImmutableMultiDict
MultiDict 是 Dictionary 的子类,与普通 Dictionaries 不同,它可以包含同一键的多个值。使用它是因为某些表单元素对于同一个键有多个值,并且它以列表的形式保存一个键的多个值。
例子:
Python3
from werkzeug.datastructures import MultiDict
orders = MultiDict([(1, 'GFG'), (1, 'Geeks')])
print(orders[1])
print(orders.getlist(1))
HTML
Input Page
HTML
Home
{{userInput}}
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()
输出:
GFG
['GFG', 'Geeks']
在本文中,我们将看到如何从 Flask 中的表单中获取 MultiDict 数据。
让我们编写一个带有表单标签的简单 HTML 页面,并将其提交给 Flask 路由。用于在 POST 请求期间从表单中获取内容的 request.form 对象是 ImmutableMultiDict 类型。
索引文件
HTML
Input Page
让我们编写另一个 HML 文件,该文件将包含 POST 请求提供的数据类型。
HTML
Home
{{userInput}}
创建 Flask 应用程序
我们将创建一个简单的 Flask 应用程序,它将在 URL http://127.0.0.1:5000/input 处呈现上面创建的表单,并在 URL http://127.0.0.1:5000/input 处显示使用 POST 请求提交的数据: 5000/保存
蟒蛇3
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()
输出: