📜  Python Flask – ImmutableMultiDict

📅  最后修改于: 2022-05-13 01:55:25.898000             🧑  作者: Mango

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()

输出: