我正在尝试从我的flask应用程序中删除两个文件。但这不起作用
html
<button href="/remove/wellness" id="remove" class="btn btn-success mr-2">Remove</button>
这是我的删除功能:
@app.route('/remove/<file_id>')
def remove(file_id):
filename_jsonl = f"{file_id}.jsonl"
filename_csv = f"{file_id}.csv"
return os.remove(filename_jsonl, filename_csv)
任何帮助都将受到赞赏。谢谢!
答案 0 :(得分:1)
我通过以下目录结构解决了该问题:
.
├── app.py
├── templates
│ └── delete_files.html
├── wellness.csv
└── wellness.jsonl
如您所见,在放置wellness.csv
文件的目录中,我有两个文件名为wellness.jsonl
和app.py
。名称wellness
将通过模板传递,这两个文件将从目录中删除。
app.py
:
import os
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def search():
return render_template('delete_files.html')
@app.route('/remove/<file_id>')
def remove(file_id):
filename_jsonl = f"{file_id}.jsonl"
filename_csv = f"{file_id}.csv"
try:
os.remove(filename_jsonl)
os.remove(filename_csv)
return "Files are deleted successfully"
except Exception as e:
return f"Error in deleting files: {e}"
delete_files.html
:
<html>
<head>
<title>Delete files using button click in Flask</title>
</head>
<body>
<a href="/remove/wellness" id="remove" class="btn btn-success mr-2">Remove</a>
</body>
</html>
输出:
点击删除按钮后,我看到消息Files are deleted successfully
。
删除文件后的文件夹结构:
.
├── app.py
└── templates
└── delete_files.html
更新
如果要在成功删除后重定向到根URL,可以使用如下的redirect
方法:
import os
from flask import Flask, render_template, redirect, url_for
app = Flask(__name__)
@app.route('/')
def search():
return render_template('delete_files.html')
@app.route('/remove/<file_id>')
def remove(file_id):
filename_jsonl = f"{file_id}.jsonl"
filename_csv = f"{file_id}.csv"
try:
os.remove(filename_jsonl)
os.remove(filename_csv)
return redirect(url_for('search'))
except Exception as e:
return f"Error in deleting files: {e}"