Flask 中的基本表单导致 HTTP 400 - Python 3.5
Basic Form In Flask Causing HTTP 400 - Python 3.5
我是新手,花了几个小时尝试在 Flask 中为 Python 3.5 设置一个表单。我希望用户能够输入温度设定值并单击提交按钮,并将值存储在变量中。
我在名为 index.html
:
的模板文件中有此代码
<html>
<body>
<p><font size="6">Jewell Hot-Tub Controller</font>
<br>
<font size="4">Water Temperature: {{water_temp}}</p>
<br>
<font size="4">Set Point: {{set_point}}</p>
<br>
<font size="4">Enter New Set Point:</p>
<form class="form-newtemp" method="get" action="/ChangeTemp">
<input type="text" id="new_sp" name="new_sp" size="5" placeholder="New Temp." required>
<input id="1submit" type="submit">
</form>
</body>
</html>
"flask-test.py" 文件中的这段代码:
from flask import Flask, render_template, request
app = Flask(__name__)
app.debug = True
@app.route('/')
def index():
return render_template('index.html', water_temp='12345')
@app.route('/ChangeTemp', methods=['GET'])
def process():
new = request.form['new_sp']
return 'New set point is:' + new
在 textbox
中输入“27”会将浏览器发送到 400 Bad Request
页面:
http://127.0.0.1:5000/ChangeTemp?new_sp=27
为什么这会更改错误的请求错误,而不是返回值?我看的教程用的是POST
,我用的是GET
,这需要不同的语法吗?
另外,如果有任何混乱或做错了,请告诉我。
谢谢!
编辑:我也试过 "request.form.get('new-sp', new)",这会导致 500 内部服务器错误。
解决问题的多种方法。我想最快的方法是:
<form class="form-newtemp" method="post" action="{{ url_for('process')}}">
然后
@app.route('/ChangeTemp', methods=['POST])
def process():
new = request.form['new_sp']
return 'New set point is:' + new
或者您可以不更改模板,并且:
@app.route('/ChangeTemp', methods=['GET'])
def process():
new = request.args.get('new_sp')
return 'New set point is:' + new
我是新手,花了几个小时尝试在 Flask 中为 Python 3.5 设置一个表单。我希望用户能够输入温度设定值并单击提交按钮,并将值存储在变量中。
我在名为 index.html
:
<html>
<body>
<p><font size="6">Jewell Hot-Tub Controller</font>
<br>
<font size="4">Water Temperature: {{water_temp}}</p>
<br>
<font size="4">Set Point: {{set_point}}</p>
<br>
<font size="4">Enter New Set Point:</p>
<form class="form-newtemp" method="get" action="/ChangeTemp">
<input type="text" id="new_sp" name="new_sp" size="5" placeholder="New Temp." required>
<input id="1submit" type="submit">
</form>
</body>
</html>
"flask-test.py" 文件中的这段代码:
from flask import Flask, render_template, request
app = Flask(__name__)
app.debug = True
@app.route('/')
def index():
return render_template('index.html', water_temp='12345')
@app.route('/ChangeTemp', methods=['GET'])
def process():
new = request.form['new_sp']
return 'New set point is:' + new
在 textbox
中输入“27”会将浏览器发送到 400 Bad Request
页面:
http://127.0.0.1:5000/ChangeTemp?new_sp=27
为什么这会更改错误的请求错误,而不是返回值?我看的教程用的是POST
,我用的是GET
,这需要不同的语法吗?
另外,如果有任何混乱或做错了,请告诉我。
谢谢!
编辑:我也试过 "request.form.get('new-sp', new)",这会导致 500 内部服务器错误。
解决问题的多种方法。我想最快的方法是:
<form class="form-newtemp" method="post" action="{{ url_for('process')}}">
然后
@app.route('/ChangeTemp', methods=['POST])
def process():
new = request.form['new_sp']
return 'New set point is:' + new
或者您可以不更改模板,并且:
@app.route('/ChangeTemp', methods=['GET'])
def process():
new = request.args.get('new_sp')
return 'New set point is:' + new