|
@@ -0,0 +1,72 @@
|
|
|
|
|
+from io import BytesIO
|
|
|
|
|
+
|
|
|
|
|
+import os
|
|
|
|
|
+
|
|
|
|
|
+from flask import Flask, send_file, request, jsonify, render_template
|
|
|
|
|
+
|
|
|
|
|
+from app.gen_units import gen_qr_code, gen_file_url
|
|
|
|
|
+
|
|
|
|
|
+app = Flask(__name__, template_folder="../templates", static_folder="../static")
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/')
|
|
|
|
|
+def index():
|
|
|
|
|
+ return render_template('index.html')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/json/<filename>', methods=['GET'])
|
|
|
|
|
+def handle_get_request(filename):
|
|
|
|
|
+ path = '../uploads/json/' + filename + '.json'
|
|
|
|
|
+ return send_file(path)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# 处理 POST 请求
|
|
|
|
|
+@app.route('/json/<filename>', methods=['POST'])
|
|
|
|
|
+def handle_post_request(filename):
|
|
|
|
|
+ path = '../uploads/json/' + filename + '.json'
|
|
|
|
|
+ return send_file(path)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/json/<filename>', methods=['PUT'])
|
|
|
|
|
+def handle_put_request(filename):
|
|
|
|
|
+ path = '../uploads/json/' + filename + '.json'
|
|
|
|
|
+ return send_file(path)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/json/<filename>', methods=['DELETE'])
|
|
|
|
|
+def handle_delete_request(filename):
|
|
|
|
|
+ path = '../uploads/json/' + filename + '.json'
|
|
|
|
|
+ return send_file(path)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/uploads', methods=['POST'])
|
|
|
|
|
+def upload_file():
|
|
|
|
|
+ url = os.environ.get('QR_URL_BASE')
|
|
|
|
|
+ if request.method == 'POST':
|
|
|
|
|
+ file = request.files['file']
|
|
|
|
|
+ url = gen_file_url(file, url)
|
|
|
|
|
+ return jsonify({'msg': '上传成功!', 'code': 1, 'data': url})
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/html/<filename>', methods=['GET'])
|
|
|
|
|
+def html_request(filename):
|
|
|
|
|
+ path = '../uploads/html/' + filename + '.html'
|
|
|
|
|
+ return send_file(path)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.route('/qrcode', methods=['get'])
|
|
|
|
|
+def qrcode():
|
|
|
|
|
+ url = request.args.get('url')
|
|
|
|
|
+ img = gen_qr_code(url)
|
|
|
|
|
+
|
|
|
|
|
+ # 将图片写入 BytesIO 对象
|
|
|
|
|
+ img_bytes_io = BytesIO()
|
|
|
|
|
+ img.save(img_bytes_io)
|
|
|
|
|
+ img_bytes_io.seek(0)
|
|
|
|
|
+
|
|
|
|
|
+ # 返回二维码图片
|
|
|
|
|
+ return send_file(img_bytes_io, mimetype='image/png')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def start():
|
|
|
|
|
+ app.run(host='0.0.0.0')
|