router.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from io import BytesIO
  2. import os
  3. from flask import Flask, send_file, request, jsonify, render_template
  4. from app.gen_units import gen_qr_code, gen_file_url
  5. app = Flask(__name__, template_folder="../templates", static_folder="../static")
  6. @app.route('/')
  7. def index():
  8. return render_template('index.html')
  9. @app.route('/json/<filename>', methods=['GET'])
  10. def handle_get_request(filename):
  11. path = '../uploads/json/' + filename + '.json'
  12. return send_file(path)
  13. # 处理 POST 请求
  14. @app.route('/json/<filename>', methods=['POST'])
  15. def handle_post_request(filename):
  16. path = '../uploads/json/' + filename + '.json'
  17. return send_file(path)
  18. @app.route('/json/<filename>', methods=['PUT'])
  19. def handle_put_request(filename):
  20. path = '../uploads/json/' + filename + '.json'
  21. return send_file(path)
  22. @app.route('/json/<filename>', methods=['DELETE'])
  23. def handle_delete_request(filename):
  24. path = '../uploads/json/' + filename + '.json'
  25. return send_file(path)
  26. @app.route('/uploads', methods=['POST'])
  27. def upload_file():
  28. url = os.environ.get('QR_URL_BASE')
  29. if request.method == 'POST':
  30. file = request.files['file']
  31. url = gen_file_url(file, url)
  32. return jsonify({'msg': '上传成功!', 'code': 1, 'data': url})
  33. @app.route('/html/<filename>', methods=['GET'])
  34. def html_request(filename):
  35. path = '../uploads/html/' + filename + '.html'
  36. return send_file(path)
  37. @app.route('/qrcode', methods=['get'])
  38. def qrcode():
  39. url = request.args.get('url')
  40. img = gen_qr_code(url)
  41. # 将图片写入 BytesIO 对象
  42. img_bytes_io = BytesIO()
  43. img.save(img_bytes_io)
  44. img_bytes_io.seek(0)
  45. # 返回二维码图片
  46. return send_file(img_bytes_io, mimetype='image/png')
  47. def start():
  48. app.run(host='0.0.0.0')