输入新的体重总是显示该错误不存在
时间: 2024-11-27 08:13:00 浏览: 11
从代码中可以看出,在 `update_pet_weight` 视图函数中,如果请求方法是 POST,则会尝试插入新的体重记录到 `pet_weights` 表中。如果插入成功,会重定向到 `view_pet` 页面,并显示成功的消息。然而,如果在插入过程中出现任何异常,可能会导致页面返回错误信息。
以下是一些可能的原因和解决方法:
1. **宠物 ID 无效**:
- 检查传递的 `pet_id` 是否有效。可以在 `update_pet_weight` 函数开始时添加一个检查:
```python
@app.route('/update_pet_weight/<int:pet_id>', methods=['GET', 'POST'])
def update_pet_weight(pet_id):
if 'user_id' not in session:
return redirect(url_for('login'))
conn = connect_db()
cursor = conn.cursor()
# 检查宠物是否存在
cursor.execute('SELECT id FROM pets WHERE id = %s AND user_id = %s', (pet_id, session['user_id']))
pet = cursor.fetchone()
if not pet:
flash("宠物不存在!", 'warning')
logging.warning("宠物不存在!")
conn.close()
return redirect(url_for('dashboard'))
```
2. **数据库连接问题**:
- 确保数据库连接没有问题。可以添加一些日志来调试:
```python
try:
cursor.execute('INSERT INTO pet_weights (pet_id, weight) VALUES (%s, %s)', (pet_id, weight))
conn.commit()
flash("宠物体重更新成功!", 'success')
logging.info("宠物体重更新成功!")
except Exception as e:
flash("更新宠物体重失败: %s" % str(e), 'danger')
logging.error("更新宠物体重失败: %s", str(e))
finally:
conn.close()
```
3. **表结构问题**:
- 确认 `pet_weights` 表的结构是否正确,特别是 `pet_id` 和 `weight` 字段的数据类型和约束是否匹配。
4. **前端表单问题**:
- 确认前端表单中的 `weight` 字段是否有正确的名称和格式。例如:
```html
<form method="post">
<label for="weight">体重:</label>
<input type="number" step="0.01" name="weight" required>
<button type="submit">更新体重</button>
</form>
```
通过以上步骤,应该能够找到并解决插入新体重记录时出现的问题。如果有更多具体的错误信息,请提供详细的信息以便进一步诊断。
阅读全文