新增和完成了录入修改,查询
This commit is contained in:
		
							
								
								
									
										83
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								app.py
									
									
									
									
									
								
							@@ -153,10 +153,10 @@ def index():
 | 
			
		||||
@app.route('/upload', methods=['POST'])
 | 
			
		||||
def upload_image():
 | 
			
		||||
    """
 | 
			
		||||
    处理图片上传请求,调用OCR识别并存储结果
 | 
			
		||||
    处理图片上传请求,调用OCR识别但不存储结果
 | 
			
		||||
    
 | 
			
		||||
    返回:
 | 
			
		||||
        JSON: 上传成功或失败的响应
 | 
			
		||||
        JSON: 识别结果,供用户编辑确认
 | 
			
		||||
    """
 | 
			
		||||
    # 获取上传的文件
 | 
			
		||||
    file = request.files.get('file')
 | 
			
		||||
@@ -173,20 +173,13 @@ def upload_image():
 | 
			
		||||
        print(f"开始处理图片: {image_path}")
 | 
			
		||||
        original_data = ocr_and_extract_info(image_path)  # 获取原始JSON数据
 | 
			
		||||
        if original_data:
 | 
			
		||||
            # 使用json_converter将JSON数据转换为字符串
 | 
			
		||||
            data_string = json_to_string(original_data)
 | 
			
		||||
            print(f"转换后的数据字符串: {data_string}")
 | 
			
		||||
            
 | 
			
		||||
            # 构造新的数据结构,只包含data和image字段
 | 
			
		||||
            processed_data = {
 | 
			
		||||
                "data": data_string,
 | 
			
		||||
                "image": filename  # 存储图片文件名
 | 
			
		||||
            }
 | 
			
		||||
            print(f"准备存储的数据: {processed_data}")
 | 
			
		||||
            
 | 
			
		||||
            insert_data(processed_data)  # 存入ES
 | 
			
		||||
            print("✓ 数据成功存储到Elasticsearch")
 | 
			
		||||
            return jsonify({"message": "成功录入", "data": original_data, "processed": processed_data})
 | 
			
		||||
            print(f"识别成功: {original_data}")
 | 
			
		||||
            # 返回识别结果和图片文件名,供用户编辑确认
 | 
			
		||||
            return jsonify({
 | 
			
		||||
                "message": "识别成功,请确认数据后点击录入", 
 | 
			
		||||
                "data": original_data, 
 | 
			
		||||
                "image": filename
 | 
			
		||||
            })
 | 
			
		||||
        else:
 | 
			
		||||
            print("✗ 无法识别图片内容")
 | 
			
		||||
            return jsonify({"error": "无法识别图片内容"}), 400
 | 
			
		||||
@@ -194,6 +187,49 @@ def upload_image():
 | 
			
		||||
        print(f"✗ 处理过程中发生错误: {str(e)}")
 | 
			
		||||
        return jsonify({"error": str(e)}), 500
 | 
			
		||||
 | 
			
		||||
# 确认录入路由
 | 
			
		||||
@app.route('/confirm', methods=['POST'])
 | 
			
		||||
def confirm_data():
 | 
			
		||||
    """
 | 
			
		||||
    确认并录入用户编辑后的数据
 | 
			
		||||
    
 | 
			
		||||
    返回:
 | 
			
		||||
        JSON: 录入成功或失败的响应
 | 
			
		||||
    """
 | 
			
		||||
    try:
 | 
			
		||||
        # 获取前端提交的数据
 | 
			
		||||
        request_data = request.get_json()
 | 
			
		||||
        if not request_data:
 | 
			
		||||
            return jsonify({"error": "没有接收到数据"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # 获取编辑后的数据和图片文件名
 | 
			
		||||
        edited_data = request_data.get('data', {})
 | 
			
		||||
        image_filename = request_data.get('image', '')
 | 
			
		||||
        
 | 
			
		||||
        if not edited_data:
 | 
			
		||||
            return jsonify({"error": "数据不能为空"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # 使用json_converter将JSON数据转换为字符串
 | 
			
		||||
        data_string = json_to_string(edited_data)
 | 
			
		||||
        print(f"转换后的数据字符串: {data_string}")
 | 
			
		||||
        
 | 
			
		||||
        # 构造新的数据结构,只包含data和image字段
 | 
			
		||||
        processed_data = {
 | 
			
		||||
            "data": data_string,
 | 
			
		||||
            "image": image_filename  # 存储图片文件名
 | 
			
		||||
        }
 | 
			
		||||
        print(f"准备存储的数据: {processed_data}")
 | 
			
		||||
        
 | 
			
		||||
        # 存入ES
 | 
			
		||||
        insert_data(processed_data)
 | 
			
		||||
        print("✓ 数据成功存储到Elasticsearch")
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({"message": "数据录入成功", "data": edited_data})
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"✗ 录入过程中发生错误: {str(e)}")
 | 
			
		||||
        return jsonify({"error": str(e)}), 500
 | 
			
		||||
 | 
			
		||||
# 搜索路由
 | 
			
		||||
@app.route('/search')
 | 
			
		||||
def search():
 | 
			
		||||
@@ -276,6 +312,21 @@ def show_all():
 | 
			
		||||
    
 | 
			
		||||
    return render_template('all.html', data=processed_data)
 | 
			
		||||
 | 
			
		||||
# 添加图片路由
 | 
			
		||||
@app.route('/image/<filename>')
 | 
			
		||||
def serve_image(filename):
 | 
			
		||||
    """
 | 
			
		||||
    提供图片文件服务
 | 
			
		||||
    
 | 
			
		||||
    参数:
 | 
			
		||||
        filename (str): 图片文件名
 | 
			
		||||
        
 | 
			
		||||
    返回:
 | 
			
		||||
        Response: 图片文件响应
 | 
			
		||||
    """
 | 
			
		||||
    from flask import send_from_directory
 | 
			
		||||
    return send_from_directory('image', filename)
 | 
			
		||||
 | 
			
		||||
# 删除数据路由
 | 
			
		||||
@app.route('/delete/<doc_id>', methods=['POST'])
 | 
			
		||||
def delete_entry(doc_id):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user