python - 如何从 python Controller 的表单中打印所有 POST 变量

标签 python post printing flask

<分区>

注意:我不知道其他帖子是如何回答这个问题的。我确实发现了以下内容:

如果你想打印到浏览器,你可以添加:

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

我正在尝试使用以下 Controller 打印所有 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 %}

最佳答案

你需要 flask 来返回一些东西给浏览器:

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从 MultiDict 返回一个普通的 python 字典。

关于python - 如何从 python Controller 的表单中打印所有 POST 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42567773/

相关文章:

python - __bases__ 不起作用!下一步是什么?

linux - 我如何在 Twisted 中处理 POST 请求?

python - 刷新页面时取消POST

C# PrintQueue AddJob printingHandle 抛出空异常

Java 以高于 72 DPI 的速度打印不会填满页面

python - 在 Plotly 的 Scattergeo 图中制作图例

python - 在python中生成随机值列表,其中每个值出现一定的百分比

python - 如何将不同长度的时间窗应用于 Pandas 数据框

ios - IONIC 3 - WKWebview CORS 问题

java - 无法对非静态字段进行静态引用