VerifVATInvoice/alibabacloud_sample/main.py

54 lines
2.0 KiB
Python
Raw Normal View History

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/<path:filename>')
def return_js(filename):
return send_from_directory(app.config.get('WEBAPP')+'/assets', str(filename))
@app.route('/uploads/<path:filename>')
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)