Python 为什么我的编辑/更新路线中断?
我正在使用Flask框架创建一个非常简单的应用程序。在为员工模型创建编辑/更新路线之前,我一直在顺利进行。我想做的是让员工更新他们的信息,当他们点击提交时,sql_alchemy就发挥了它的魔力。我遇到的问题是,我的编辑url在它之前工作的地方被破坏了。我一直在戳我的应用程序,但我似乎无法让它工作。这是我的编辑/更新操作的相关代码:Python 为什么我的编辑/更新路线中断?,python,flask,Python,Flask,我正在使用Flask框架创建一个非常简单的应用程序。在为员工模型创建编辑/更新路线之前,我一直在顺利进行。我想做的是让员工更新他们的信息,当他们点击提交时,sql_alchemy就发挥了它的魔力。我遇到的问题是,我的编辑url在它之前工作的地方被破坏了。我一直在戳我的应用程序,但我似乎无法让它工作。这是我的编辑/更新操作的相关代码: @app.route('/edit_employee/<id>', methods=['GET','PUT']) def edit_em
@app.route('/edit_employee/<id>', methods=['GET','PUT'])
def edit_employee(id):
if request.method == 'GET':
employee = Employee.query.get(id)
return render_template('edit.html', employee=employee)
else:
existing_employee = Employee.query.get(id)
updated_employee = Employee(request.form['name'], request.form['title'],
request.form['email'], request.form['department'])
file = request.files['profile_image']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
filename = updated_employee.name
# Destroy the old image first
os.remove(os.path.join(app.config['UPLOAD_FOLDER'], filename))
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
existing_employee = updated_employee
db.session.commit()
return redirect(url_for('all_employees'))
我使用Rails和Sinatra已经有一段时间了,我根本不习惯Flask的错误渲染。对于这个错误
BuildError:('edit_employee',{},None)
我不能确切地告诉你问题出在哪一行。我们将不胜感激 错误是,您试图访问一个名为edit\u employee
的路由,但该路由不存在。您的edit_employee
路线接受
参数,因此您需要如下调用路线:
{url\u for('edit\u employee',id=id)}
您的edit\u employee
函数接受一个名为id
的参数,但是当您调用url\u for
时,您没有传递任何参数。哦,是这样吗?我为('edit_employee/')创建了url_。谢谢你指出这一点。顺便说一句,你知道有哪些库会突出显示更好的错误吗。我相信我会习惯的,但我只是想知道。谢谢
<body>
<div>
<form{% block form_action %}{% endblock %}>
<h2>{% block h2 %}{% endblock %}</h2>
<div class="control-group">
<div class="controls">
<label>Name</label>
<input type="text" id="name" name="name"
placeholder="Specify name" value="{{ request.form.name }}"
required>
.............
{% extends "layout.html" %}
{% block h2 %}Edit a Blackduck employee{% endblock %}
{% block form_action %}action="{{ url_for('edit_employee') }}" enctype=multipart/form-data method=post class="form-horizontal"{% endblock %}
{% block submit %}Update{% endblock %}