如何从python控制器打印表单中的所有POST变量
注意:我不知道另一个帖子是如何回答这个问题的。我确实发现了以下几点: 如果要打印到浏览器,只需添加:如何从python控制器打印表单中的所有POST变量,python,post,printing,flask,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") 我正在尝试使用以下控制器打印所有POST变量: from
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 %}
{%extends“layout.html”%}
{%block title%}
泡沫IMs
{%endblock%}
{%block body%}
弗罗什智能弹药系统寄存器
姓名:
宿舍:
阿普利法院
卡纳迪
灰色
格林诺
霍利斯
霍尔沃西
赫尔布特
莱昂内尔
马修斯
割草机
彭尼帕克
斯托顿
斯特劳斯
塞耶
焊接
威格斯沃斯
{%endblock%}
您需要将某些内容返回到浏览器:
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返回一个普通python dict。您需要将某些内容返回到浏览器:
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返回一个普通的python dict。也不以内置的名称命名,所以将其称为
your_dict
或其他东西,而不是dict
,我不明白。如果我返回render_template,我将只渲染该模板。既然我可以做if request.form[“name”]我就不能做dict=request.form我是从:我明白你在说什么了。但是您得到的错误是因为该视图没有返回任何内容。另外,当我将dict更改为my_dict时,我得到的是TypeError:“type”对象不是iterable,我得到的是该视图没有返回任何内容,我该如何修复它呢?也不要用内置的名字来命名东西,所以叫它your_dict
或者别的什么,而不是dict
,我不懂。如果我返回render_template,我将只渲染该模板。既然我可以做if request.form[“name”]我就不能做dict=request.form我是从:我明白你在说什么了。但是您得到的错误是因为该视图没有返回任何内容。另外,当我将dict更改为my_dict时,我返回TypeError:“type”对象不是iterableI,我知道该视图没有返回任何内容,我如何修复它?谢谢,我们就到了。如果我只添加一行return jsonify(request.form.to_dict()),它将输出POST变量。为什么我不需要print语句,print request.form不应该在jsonify语句之后?Flask是一个web框架。它是与客户端(例如web浏览器)通信的“服务器”端print
将写入文本,如果您从终端运行flask dev服务器,该文本将成为终端窗口。一旦视图函数使用了return
,之后的任何行都将被忽略。你应该考虑复习一些教程,因为这实际上是烧瓶是什么,做什么,HTTP是如何工作的。谢谢,我现在开始工作了。有没有一种方法可以像PHP的print_r函数那样控制向web浏览器的打印?您需要使用jinja模板(例如return render_template('page.html',data=request.form.to_dict())
而不是jsonify()
),并在模板中使用Jinja2,如{data | pprint}
谢谢,我们马上就到了。如果我只添加一行return jsonify(request.form.to_dict()),它将输出POST变量。为什么我不需要print语句,print request.form不应该在jsonify语句之后?Flask是一个web框架。它是与客户端(例如web浏览器)通信的“服务器”端print
将写入文本,如果您从终端运行flask dev服务器,该文本将成为终端窗口。一旦视图函数使用了return
,之后的任何行都将被忽略。你应该考虑复习一些教程,因为这实际上是烧瓶是什么,做什么,HTTP是如何工作的。谢谢,我现在开始工作了。有没有一种方法可以像PHP的print_r函数那样控制向web浏览器的打印?您需要使用jinja模板(例如return render_template('page.html',data=request.form.to_dict())
而不是jsonify()
),并在模板中使用Jinja2,比如{data}pprint}