【发布时间】:2017-01-18 11:20:48
【问题描述】:
我正在使用 Flask,我试图在其中一个表单部分尚未填写时显示错误。当我测试这个(填写所有表单部分)时,它给了我错误:“TypeError:redirect()得到了一个意外的关键字参数'错误'”。我做错了什么?
烧瓶代码:
@app.route('/crudcourse', methods = ['POST'])
def crudcourse():
db = get_db()
error = None
button = request.form['submitcourse']
coursename = request.form['coursename']
description = request.form['description']
if coursename != None or description != None:
error = 'Vul alle velden in aub'
else:
if button == 'Toevoegen':
db.execute('insert into courses (coursename, description)
values(?, ?)', coursename, description)
db.commit()
flash('Gegevens sucessvol toegevoegd')
elif button == 'Updaten':
db.execute('update courses set coursename=?, description=? where
coursename=? or description=?',
coursename, description, coursename, description)
db.commit()
flash('Gegevens sucessvol geupdate')
elif button == 'Verwijderen':
db.execute('delete from courses where coursename=? or
description=?', coursename, description)
db.commit()
flash('Gegevens sucessvol verwijderd')
return redirect('/intranet/richtingen.html', error=error)
HTML 代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home</title>
<link rel="stylesheet" type="text/css" href="templates/style.css">
</head>
<body>
{% if error %}
<p class=error><strong>Error:</strong> {{ error }}
{% endif %}
{% for message in get_flashed_messages() %}
<div class=flash>{{ message }}</div>
{% endfor %}
<div id="courses">
<form action="/crudcourse" method="post">
<p>Naam<input type="text" name="coursename"></p>
<p>Beschrijving
<textarea name="description" cols="50" rows="4">
</textarea></p>
<input type="submit" name="submitcourse" value="Toevoegen">
</input>
<input type="submit" name="submitcourse" value="Updaten">
</input>
<input type="submit" name="submitcourse" value="Verwijderen">
</input>
</form>
</div>
</body>
</html>
【问题讨论】:
-
把图片中的代码粘贴到这里,对我们来说更易读。
-
嗯,错误信息还不够清楚吗?
redirect对象不知道如何处理关键字参数error。请参阅 API 文档:flask.pocoo.org/docs/0.12/api/#flask.redirect -
@Arman 我把代码贴在上面了