fastapi, 在一个网页模版上显示一个指定文件夹下所有不含地址的文件名的列表,勾选这个这些列表,将文件名组成一个组返回给后端,后端执行删除程序
时间: 2024-09-06 14:06:12 浏览: 45
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。其主要特点是基于标准的 Python 类型提示,使得其易于学习和使用,同时也支持异步处理。FastAPI 生成交互式 API 文档,如 Swagger UI 或 ReDoc,这可以使得使用 API 变得非常直观。
要在一个网页模板上显示一个指定文件夹下所有不含地址的文件名的列表,并允许用户勾选这些列表后返回给后端执行删除程序,可以通过以下步骤实现:
1. 使用 FastAPI 创建基础的 API 端点。
2. 集成前端模板引擎,比如 Jinja2,用于渲染网页。
3. 创建 HTML 模板文件,用于显示文件列表和勾选框。
4. 提供一个端点,用于获取指定文件夹下所有文件名,并将其传递给前端模板。
5. 提供一个端点,用于接收前端发送的勾选后的文件名组,并执行删除操作。
以下是一个简单的示例代码:
```python
from fastapi import FastAPI, HTTPException, Request
from fastapi.templating import Jinja2Templates
import os
from starlette.responses import HTMLResponse
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/files", response_class=HTMLResponse)
def list_files(request: Request):
folder_path = "指定的文件夹路径" # 请替换成实际路径
files = os.listdir(folder_path)
return templates.TemplateResponse("files_template.html", {"request": request, "files": files})
@app.post("/delete-files")
def delete_files(file_list: list):
folder_path = "指定的文件夹路径" # 请替换成实际路径
for file in file_list:
file_path = os.path.join(folder_path, file)
if os.path.exists(file_path):
os.remove(file_path)
return {"message": "Files have been deleted successfully"}
# 文件列表模板文件 "files_template.html" 需要放在 templates 文件夹中
"""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件列表</title>
</head>
<body>
<form action="/delete-files" method="post">
{% for file in files %}
<input type="checkbox" name="file_list" value="{{ file }}"> {{ file }}<br>
{% endfor %}
<input type="submit" value="删除所选文件">
</form>
</body>
</html>
"""
```
注意,上面的代码中需要将模板文件`files_template.html`放在项目的`templates`文件夹中,且在实际使用时需要替换`指定的文件夹路径`为实际的文件夹路径。
阅读全文