用python写一个服务并注释,开放接口并注明接口地址,启动后前端访问接口后会输入堆场号,并赋值给dch,后端接收参数,并在当前目录下创建文件夹,名为"‘dch'+堆场",成功后,提示文件创建成功,前端向该文件夹中一次传任意张照片,后端接收照片并存储在该文件夹下
时间: 2024-05-07 19:20:43 浏览: 49
python+flask编写一个简单的登录接口
5星 · 资源好评率100%
以下是Python代码实现:
```python
from flask import Flask, request, jsonify
import os
app = Flask(__name__)
@app.route('/create_folder', methods=['POST'])
def create_folder():
dch = request.json['dch'] # 获取堆场号
folder_path = os.path.join(os.getcwd(), f"{dch}堆场") # 拼接文件夹路径
if not os.path.exists(folder_path): # 如果文件夹不存在,则创建
os.mkdir(folder_path)
return jsonify({'message': '文件夹创建成功'})
else:
return jsonify({'message': '文件夹已存在'})
@app.route('/upload_photo/<dch>', methods=['POST'])
def upload_photo(dch):
folder_path = os.path.join(os.getcwd(), f"{dch}堆场") # 拼接文件夹路径
if not os.path.exists(folder_path): # 如果文件夹不存在,则提示错误信息
return jsonify({'message': '文件夹不存在,请先创建文件夹'})
else:
# 保存照片
for file in request.files.getlist('photo'):
file.save(os.path.join(folder_path, file.filename))
return jsonify({'message': '照片保存成功'})
if __name__ == '__main__':
app.run()
```
注释如下:
- `from flask import Flask, request, jsonify`:导入`Flask`框架及相关模块
- `app = Flask(__name__)`:创建`Flask`应用实例
- `@app.route('/create_folder', methods=['POST'])`:设置路由,当前端访问`/create_folder`地址并以`POST`方式发送请求时,执行下面的函数
- `def create_folder():`:函数名
- `dch = request.json['dch']`:获取前端传递的`dch`参数
- `folder_path = os.path.join(os.getcwd(), f"{dch}堆场")`:拼接文件夹路径
- `if not os.path.exists(folder_path):`:判断文件夹是否存在
- `os.mkdir(folder_path)`:创建文件夹
- `return jsonify({'message': '文件夹创建成功'})`:返回创建成功信息
- `@app.route('/upload_photo/<dch>', methods=['POST'])`:设置路由,前端访问`/upload_photo/<dch>`地址并以`POST`方式发送请求时,执行下面的函数
- `def upload_photo(dch):`:函数名,接收前端传递的`dch`参数
- `folder_path = os.path.join(os.getcwd(), f"{dch}堆场")`:拼接文件夹路径
- `if not os.path.exists(folder_path):`:判断文件夹是否存在
- `return jsonify({'message': '文件夹不存在,请先创建文件夹'})`:返回文件夹不存在错误信息
- `for file in request.files.getlist('photo'):`:遍历前端传递的照片列表
- `file.save(os.path.join(folder_path, file.filename))`:保存照片
- `return jsonify({'message': '照片保存成功'})`:返回照片保存成功信息
- `if __name__ == '__main__':`:判断是否为主程序
- `app.run()`:启动应用
接口地址:
- 创建文件夹:`http://localhost:5000/create_folder`
- 上传照片:`http://localhost:5000/upload_photo/<dch>`,其中`<dch>`为堆场号
前端代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>上传照片</title>
</head>
<body>
<form action="http://localhost:5000/create_folder" method="post">
<label>堆场号:</label>
<input type="text" name="dch"><br>
<input type="submit" value="创建文件夹">
</form>
<form action="http://localhost:5000/upload_photo/123" method="post" enctype="multipart/form-data">
<label>选择照片:</label>
<input type="file" name="photo" multiple><br>
<input type="submit" value="上传照片">
</form>
</body>
</html>
```
其中`http://localhost:5000/create_folder`和`http://localhost:5000/upload_photo/123`为接口地址,`123`为堆场号,可以根据实际情况进行修改。
阅读全文