python - 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)
任何和所有的帮助表示赞赏。谢谢!
解决方案
我用以下目录结构解决了这个问题:
.
├── 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}"
推荐阅读
- python-3.x - 从 Tkinter 中的回调函数中检索信息
- python - 创建时将用户设置为组
- swift - 如何获取要正确更新的实体数量
- python - 当键对相同时,将值从一个嵌套字典复制到另一个嵌套字典
- python - 是否可以更改您在 python 中使用的架构?
- javascript - 在不活动时结束 Zopim 聊天
- c# - DataGridView 性能改进
- class - 如何估计一个类的空间复杂度?
- json - ktor 为某些数据类抛出 NoTransformationFoundException
- cpu-architecture - 如何计算两个处理器的平均 CPI?