gpt4 book ai didi

python - Flask 路由传递参数返回错误

转载 作者:行者123 更新时间:2023-12-01 07:55:50 24 4
gpt4 key购买 nike

我是 Flask 新手。我的代码有问题。我希望我的应用程序删除目录中的指定文件。

首先,这是我的代码,用于以列表的形式显示指定目录中的所有文件:

@app.route('/dirfile')
def dirfile():
path = './static/pickle/'
lst = os.listdir(path)
return render_template('dirfile.html', lst=lst)

这是我的 dirfile.html 代码,显示目录中的所有文件。

 {% for file_name in lst %}
<ul class="list-group ">
<li class="list-group-item ">
<div class="row">
<div class="col">
{{ file_name }}
</div>
<div class="col">
<a
href="{{ url_for('deldir/{{file_name}}') }}"
class="btn btn-danger btn-sm float-right"
>Delete</a
>
</div>
</div>
</li>
</ul>
{% endfor %}

如果您注意到,我添加了一个删除按钮来执行列表中指定文件的删除操作。

我的删除功能:

@app.route('/deldir/<string:file_name>')
def deldir(file_name):
path = './static/pickle/'
base = file_name
fullpath = path + base
os.remove(fullpath)
return redirect(url_for('dirfile'))

但它返回了以下错误:

werkzeug.routing.BuildError: Could not build url for endpoint 'deldir/{{file_name}}'. Did you mean 'dirfile' instead?

最佳答案

url_for() 需要函数名称,而不是 route() 中的 url。

你的函数的名称为deldir,它的参数名称为file_name,所以你有

 url_for('deldir', file_name=file_name)

关于python - Flask 路由传递参数返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55987505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com