注意:我不知道其他帖子如何回答这个问题。我确实发现了以下内容:
如果要打印到浏览器,只需添加:
return jsonify(request.form)
如果要打印到控制台,可以添加:
my_data = request.form
for key in my_data:
print ('form key '+key+" "+my_data[key])
return render_template("some.html")
我尝试使用以下控制器打印所有POST变量:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/register", methods=["POST"])
def register():
dict = request.form
for key in dict:
print ('form key '+dict[key])
但是我收到了错误:
ValueError: View function did not return a response
这是我的表格:
{% extends "layout.html" %}
{% block title %}
Frosh IMs
{% endblock %}
{% block body %}
<h1>Register for Frosh IMs</h1>
<form action="{{ url_for('register') }}" method="post">
Name: <input name="name" type="text"/>
<br/>
Dorm:
<select name="dorm">
<option value=""></option>
<option value="Apley Court">Apley Court</option>
<option value="Canaday">Canaday</option>
<option value="Grays">Grays</option>
<option value="Greenough">Greenough</option>
<option value="Hollis">Hollis</option>
<option value="Holworthy">Holworthy</option>
<option value="Hurlbut">Hurlbut</option>
<option value="Lionel">Lionel</option>
<option value="Matthews">Matthews</option>
<option value="Mower">Mower</option>
<option value="Pennypacker">Pennypacker</option>
<option value="Stoughton">Stoughton</option>
<option value="Straus">Straus</option>
<option value="Thayer">Thayer</option>
<option value="Weld">Weld</option>
<option value="Wigglesworth">Wigglesworth</option>
</select>
<br/>
<input type="submit" value="Register"/>
</form>
{% endblock %}
答案 0 :(得分:5)
you need flask to return something to the browser:
from flask import jsonify
@app.route("/register", methods=["POST"])
def register():
# this line goes to the console/terminal in flask dev server
print request.form
# this line prints out the form to the browser
return jsonify(request.form.to_dict())
Multidict to_dict() method returns a normal python dict from the MultiDict.