This commit is contained in:
2025-09-23 20:13:58 +08:00
parent 5c8d07e5d7
commit ee2c28852d
18 changed files with 67 additions and 1498 deletions
+43 -24
View File
@@ -83,7 +83,9 @@ def query():
phone = request.form.get('phone', '').strip()
if not plate_number and not phone:
return render_template('query.html', error='请至少输入车牌号或手机号', recent_queries=formatted_recent_queries)
# 存储错误信息到session
session['error_message'] = '请至少输入车牌号或手机号'
return redirect(url_for('query'))
conn = get_db_connection()
cursor = conn.cursor()
@@ -156,40 +158,57 @@ def query():
'results_count': len(car_owners)
}
# 使用辅助函数获取更新后的最近查询历史
formatted_recent_queries = get_recent_queries()
# 将查询结果和历史信息存储到session中
session['query_results'] = {
'car_owners': car_owners,
'query_history': query_history
}
return render_template('query.html', query_history=query_history, car_owners=car_owners, recent_queries=formatted_recent_queries)
# 重定向到GET请求,避免刷新页面时的重复提交提示
return redirect(url_for('query'))
return render_template('query.html', recent_queries=formatted_recent_queries)
# GET请求时,从session中获取查询结果(如果有)
query_results = session.pop('query_results', None)
error_message = session.pop('error_message', None)
# 重新获取最近查询历史,确保数据是最新的
formatted_recent_queries = get_recent_queries()
if query_results:
return render_template('query.html',
query_history=query_results['query_history'],
car_owners=query_results['car_owners'],
recent_queries=formatted_recent_queries,
error=error_message)
return render_template('query.html', recent_queries=formatted_recent_queries, error=error_message)
# 获取查询历史详情的路由
@app.route('/query_history_detail/<int:history_id>')
def query_history_detail(history_id):
"""
根据查询历史ID获取对应的车辆所有者信息
Args:
history_id: 查询历史记录的ID
Returns:
JSON: 包含车辆所有者信息的JSON响应
"""
# 检查用户是否已登录
if 'username' not in session:
return jsonify({'error': '未登录'}), 401
# 验证history_id是否为正整数
if not isinstance(history_id, int) or history_id <= 0:
return jsonify({'error': '无效的查询历史ID'}), 400
conn = get_db_connection()
cursor = conn.cursor()
try:
# 获取查询历史记录
cursor.execute("SELECT plate_number, phone FROM query_history WHERE id = ?", (history_id,))
history = cursor.fetchone()
if not history:
return jsonify({'error': '查询历史不存在'}), 404
plate_number, phone = history
# 根据车牌号和手机号查询车辆信息
if plate_number and phone:
cursor.execute("SELECT * FROM car_owners WHERE plate_number = ? AND phone = ?", (plate_number, phone))
elif plate_number:
cursor.execute("SELECT * FROM car_owners WHERE plate_number = ?", (plate_number,))
else:
cursor.execute("SELECT * FROM car_owners WHERE phone = ?", (phone,))
# 直接根据query_history_id从car_owners表查询对应记录
cursor.execute("SELECT * FROM car_owners WHERE query_history_id = ?", (history_id,))
results = cursor.fetchall()
# 格式化结果
@@ -201,8 +220,8 @@ def query_history_detail(history_id):
'phone': result[2],
'id_card': result[3],
'name': result[4],
'email': result[5],
'address': result[6]
'email': result[5] if result[5] else '',
'address': result[6] if result[6] else ''
})
return jsonify({'car_owners': car_owners})