VerifVATInvoice/alibabacloud_sample/main.py
liuxiaoqing 0c4e94b5af feat(webapp): 初始化项目结构和功能
- 创建项目目录和文件结构
- 添加基础的 Vue组件和布局
- 实现简单的路由和页面切换
- 添加数据库操作相关代码
- 引入 dateutil 库并添加相关测试
2025-08-17 13:24:36 +08:00

54 lines
2.0 KiB
Python

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)