receive_sth.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from flask import Flask, request, jsonify, Response, make_response
  2. from werkzeug.utils import secure_filename
  3. import os
  4. app = Flask(__name__)
  5. print('创建app:', __name__)
  6. @app.route('/test', methods=['GET', 'POST', 'PUT', 'DELETE'])
  7. def test():
  8. # 获取请求方法
  9. http_method = request.method
  10. print('请求方法:', http_method)
  11. # 获取查询参数
  12. print('args:', request.args.to_dict())
  13. # 表单数据
  14. print('form:', request.form.to_dict())
  15. # 文件
  16. save_path = './uploads'
  17. if not os.path.exists(save_path):
  18. os.makedirs(save_path)
  19. # 获取所有字段名
  20. user_file_field = request.files.keys()
  21. for field_name in user_file_field:
  22. # 注意每个字段名有可能包含多个不同的文件
  23. user_file_list = request.files.getlist(field_name)
  24. print(f'{field_name}字段包含{len(user_file_list)}个文件')
  25. for file in user_file_list:
  26. # 保存路径
  27. f_name = secure_filename(field_name + file.filename) # 安全处理
  28. f_path = os.path.join(save_path, f_name) # 也可以筛选拓展名和处理用户的文件名称
  29. print('保存文件:', f_path)
  30. # 保存文件
  31. file.save(f_path)
  32. # {
  33. # 'method': request.method,
  34. # 'args': dict(request.args),
  35. # 'form': dict(request.form),
  36. # 'files': {name: file.filename for name, file in request.files.items()},
  37. # 'json': request.json,
  38. # 'headers': dict(request.headers),
  39. # 'content_type': request.content_type
  40. # }
  41. return {"message":"received"}, 200, {'Content-Type': 'application/json; charset=utf-8'}
  42. if __name__ == '__main__':
  43. app.run(port=5000, debug=True)