带参数返回的路由传递

2024-09-30 22:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我对烧瓶不熟悉。我的代码有问题。我希望我的应用程序删除我目录中的指定文件

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

@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 %}

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

我的删除功能:

@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?


Tags: 文件path代码namediv目录url列表
1条回答
网友
1楼 · 发布于 2024-09-30 22:10:43

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

函数名为deldir,参数名为file_name,因此

 url_for('deldir', file_name=file_name)

相关问题 更多 >