feat: 添加异常处理以增强数据库保存逻辑

- 在结果处理逻辑中添加try-except块,以捕获保存用户响应到数据库时的异常
- 确保在发生错误时能够打印异常信息,提升系统的稳定性和可调试性
This commit is contained in:
Miu Li 2025-06-16 06:29:46 +08:00
parent ee9e6a5cca
commit e3b3b5a1f6

35
app.py
View File

@ -120,22 +120,25 @@ async def result(request: Request, scale_id: str, db: Session = Depends(get_db))
else:
responses[subscale] += int(form_data[str(qid)])
average[subscale] = round(responses[subscale]/len(qids),2)
# Save response to database
ip = request.headers.get("X-Forwarded-For", "").split(",")[0].strip() or \
request.headers.get("X-Real-IP", "") or \
request.client.host # Get real IP address considering proxy headers
location = get_location_from_ip(ip)# Get location information
db_response = RawResponse(
scale_id=scale_id,
user_agent=request.headers.get("user-agent", "Unknown"),
ip_address=ip,
location=json.dumps(location) if location else None,
raw_response=dict(form_data),
sum_response=responses,
avg_response=average
)
db.add(db_response)
db.commit()
try:
# Save response to database
ip = request.headers.get("X-Forwarded-For", "").split(",")[0].strip() or \
request.headers.get("X-Real-IP", "") or \
request.client.host # Get real IP address considering proxy headers
location = get_location_from_ip(ip)# Get location information
db_response = RawResponse(
scale_id=scale_id,
user_agent=request.headers.get("user-agent", "Unknown"),
ip_address=ip,
location=json.dumps(location) if location else None,
raw_response=dict(form_data),
sum_response=responses,
avg_response=average
)
db.add(db_response)
db.commit()
except Exception as e:
print(e)
return templates.TemplateResponse("result.html", {
"request": request,
"responses": responses,