from flask import Flask, request, render_template, send_from_directory from flask_cors import CORS from alibabacloud_sample.dataservice import DataService from alibabacloud_sample.fileservice import FileService from alibabacloud_sample.service import Service from dateutil import parser app = Flask(__name__) CORS(app) app.config['UPLOAD_FOLDER'] = 'uploads' # 指定上传文件夹 app.config['WEBAPP'] = 'templates' @app.route('/index') def index(): return render_template('index.html') @app.route('/assets/') def return_js(filename): return send_from_directory(app.config.get('WEBAPP')+'/assets', str(filename)) @app.route('/uploads/') def return_file(filename): return send_from_directory(app.config.get('UPLOAD_FOLDER'), str(filename)) # 上传文件 @app.route('/upload', methods=['POST']) def upload_file(): if request.method == 'POST': file_service = FileService() msg = file_service.upload(request,app.config['UPLOAD_FOLDER']) if msg == "No file part" or msg == "No selected file": return "请选择文件" else: return msg return None # 发票识别 @app.route('/recognize', methods=['GET']) def recognize(): file_path = request.args.get('filePath') service = Service() dataservice = DataService() data = dataservice.get_invoice(file_path=file_path) if data is not None: return data return service.recognize(file_path=file_path) # 发票验证 @app.route('/verify', methods=['GET']) def verify(): file_path = request.args.get('filePath') if file_path is None: return "请选择文件" service = Service() dataservice = DataService() data = dataservice.get_invoice(file_path=file_path) return service.verify(data=data,file_path=file_path) if __name__ == '__main__': # Service.verify(sys.argv[1:]) # Service.recognize(file_path="/home/jayus/图片/wechat_2025-07-31_131911_822.png") app.run(host='0.0.0.0', port=5000, debug=True)