You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CS50X PS9 Finance:buy功能测试失败,页面未找到指定金额

排查CS50X PS9 Finance Buy功能测试失败的方法

1. 检查usd过滤器的输出格式

这是最常见的问题:

  • 打开helpers.py查看usd函数实现,默认会返回带美元符号的格式化字符串:
    def usd(value):
        return f"${value:,.2f}"
    
  • 若测试预期查找纯数字112.00,但页面输出的是$112.00,测试自然无法匹配。
  • 解决:要么在模板中为目标数值额外输出不带$的纯数字(比如<span style="display:none">{{ total_value }}</span>),要么确认测试日志是否省略了$符号(实际预期是$112.00)。

2. 验证Index路由的数值计算逻辑

检查app.py中的index路由:

  • 确保单只股票总价值计算正确:round(shares * current_price, 2)(必须保留两位小数)
  • 持仓总价值的求和无遗漏、无重复,可在路由中加print(total_value)输出数值,确认是否为112.00
  • 确认传递给模板的变量(如total_value、grand_total)名称与模板中引用的一致

3. 检查HTML模板的渲染逻辑

打开templates/index.html:

  • 确认展示目标数值的元素正确引用了变量,比如:
    <td>{{ stock.total_value | usd }}</td>
    
    避免变量名拼写错误(比如把stock.total_value写成total)
  • 直接查看页面源代码,搜索112,确认数值是否存在(不管带不带$符号)
  • 排查数值是否被其他元素遮挡或渲染时被截断

4. 确认Buy路由的交易逻辑

检查app.py中的buy路由:

  • 确保交易后正确扣除用户现金、更新数据库中shares数量
  • 交易完成后正确跳转至index页面,且上下文数据传递正常
  • 若调用了实时股票API,临时硬编码价格为112测试,排除实时价格波动导致的数值不匹配

5. 验证登录状态与数据一致性

  • 检查login路由是否正确设置了session,确保用户登录状态稳定
  • 交易完成后查看数据库(finance.db),确认users表的现金、transactions表的记录、portfolio表的持仓数是否符合预期

内容的提问来源于stack exchange,提问作者wezeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 01:43:24