正如标题所说,我的表格给了我一个400错误的请求错误。我不知道为什么我会收到这个错误,我认为在开始时我的ssid会有所改变,因为我也在post-method中使用它作为参考。这就是为什么我做了一个隐藏字段发布ssid-info并从request.form获取它,但它会导致相同的错误。
这是我的HTML代码:
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
{% from "_formhelpers.html" import render_field %}
<center>
<table border='0' class='content'>
<form action="/edit_guest/" method="POST" enctype="multipart/form-data">
{% for row in rows %}
<tr>
<td>Cardnumber:</td><td>{{row[12]}}</td>
</tr>
<tr>
<td>SSID:</td><td>{{row[16]}}</td>
</tr>
<tr>
<td>Edited by:</td><td>{{row[19]}}</td>
</tr>
<tr>
<td>Firstname:</td><td><input type='text' name='firstname' value='{{row[1]}}'></td>
</tr>
<tr>
<td>Lastename:</td><td><input type='text' name='lastname' value='{{row[2]}}'></td>
</tr>
<tr>
<td>Company:</td><td><input type='text' name='company' value='{{row[3]}}'></td>
</tr>
<tr>
<td>Contactperson :</td><td><input type='text' name='contact' value='{{row[4]}}'></td>
</tr>
<tr>
<td>Phonenumber:</td><td><input type='text' name='phone' value='{{row[6]}}'></td>
</tr>
<tr>
<td>Comment:</td><td><textarea name='comment'>{{row[15]}}</textarea></td>
</tr>
<tr>
<td colspan="2"><input type="hidden" name="ssid" value="{{row[16]}}"><input type="submit" name="save" value="Save"></td>
</tr>
{%endfor%}
</form>
</table>
</center>
以下是导致错误的PythonScript部分:
@app.route('/edit_guest/', methods=["GET","POST"])
def Edit_Guest():
try:
ssid = request.args['ssid']
c, conn = connection()
c.execute("SELECT * FROM accesslog WHERE ssid=(%s)",(ssid))
rows = c.fetchall()
if request.method == "POST":
ssid = request.form['ssid']
c.execute("UPDATE accesslog SET firstname=(%s),lastname=(%s),company=(%s),contact=(%s),phone=(%s), comment=(%s), edit=(%s) WHERE ssid=(%s)",(
request.form['firstname'],
request.form['lastname'],
request.form['company'],
request.form['contact'],
request.form['phone'],
request.form['comment'],
session['user'],
ssid))
conn.commit()
conn.close()
return redirect(url_for('/DashBoard/'))
conn.close()
return render_template('edit_Guest.html',rows=rows)
except Exception as e:
return (str(e))
return render_template('edit_Guest.html',rows=rows)
有人能看到导致此错误的原因吗?
解决: 我通过将formrequest发送到另一个页面来解决它,然后在那里进行sql操作。 Flask debugingtoolbar向我显示没有后期数据。