用python写一个服务并注释,开放接口并注明接口地址,启动后前端访问接口后会请输入堆场号,并赋值给dch,后端接收参数,并在当前目录下创建文件夹,名为"‘dch'+堆场",成功后,提示文件创建成功,然后前端向创建的文件夹中传照片,后端接收照片并存储在该文件夹下
时间: 2024-06-09 12:07:42 浏览: 115
以下是一个示例代码,实现了上述功能:
```python
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/create_folder', methods=['POST'])
def create_folder():
dch = request.json.get('dch')
folder_name = f"{dch} 堆场"
try:
os.mkdir(folder_name)
message = f"文件夹 {folder_name} 创建成功"
return jsonify({'message': message}), 200
except Exception as e:
return jsonify({'message': str(e)}), 500
@app.route('/upload_photo', methods=['POST'])
def upload_photo():
dch = request.json.get('dch')
folder_name = f"{dch} 堆场"
try:
if 'photo' not in request.files:
return jsonify({'message': '未上传照片'}), 400
photo = request.files['photo']
photo.save(os.path.join(folder_name, photo.filename))
message = f"照片 {photo.filename} 上传成功"
return jsonify({'message': message}), 200
except Exception as e:
return jsonify({'message': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True)
```
注释如下:
- `from flask import Flask, request, jsonify`:导入 Flask 和相关的类和函数。
- `app = Flask(__name__)`:创建 Flask 应用实例。
- `@app.route('/create_folder', methods=['POST'])`:定义路由,接收 POST 请求。
- `def create_folder():`:定义视图函数,获取堆场号并创建文件夹。
- `dch = request.json.get('dch')`:从请求中获取堆场号。
- `folder_name = f"{dch} 堆场"`:根据堆场号创建文件夹的名称。
- `os.mkdir(folder_name)`:创建文件夹。
- `message = f"文件夹 {folder_name} 创建成功"`:创建成功的提示信息。
- `return jsonify({'message': message}), 200`:将提示信息转换为 JSON 格式并返回。
- `@app.route('/upload_photo', methods=['POST'])`:定义路由,接收 POST 请求。
- `def upload_photo():`:定义视图函数,获取堆场号和照片并保存。
- `if 'photo' not in request.files:`:检查是否上传了照片。
- `photo = request.files['photo']`:从请求中获取照片。
- `photo.save(os.path.join(folder_name, photo.filename))`:保存照片到文件夹中。
- `message = f"照片 {photo.filename} 上传成功"`:上传成功的提示信息。
- `return jsonify({'message': message}), 200`:将提示信息转换为 JSON 格式并返回。
- `if __name__ == '__main__':`:判断是否为主程序。
- `app.run(debug=True)`:启动应用程序,开启调试模式。
接口地址:
- 创建文件夹:http://localhost:5000/create_folder
- 上传照片:http://localhost:5000/upload_photo
前端可以使用 AJAX 或其他工具访问以上接口,并传递参数和照片。
阅读全文