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

CS50 Finance点击Sell按钮后Flask模板语法错误求助

解决CS50 Finance Sell页面的jinja2.exceptions.TemplateSyntaxError错误

错误根源

你的sell.html模板中存在Jinja2语法错误:title块的起始标签使用了{$而非Jinja2标准的{%,导致模板解析器无法识别后续的{% endblock %}标签,从而抛出Encountered unknown tag 'endblock'异常。

修正步骤

1. 修复sell.html中的语法错误

将sell.html里的{$ block title %}替换为{% block title %},修正后的完整代码如下:

{% extends "layout.html" %}

{% block title %}
    Sell Shares
{% endblock %}

{% block main %}
    <form action="/sell" method="post">
        <div class="form-group">
            <label for="symbol">Symbol</label>
            <select class="form-control" id="symbol" name="symbol">
                <option value="">Select stock</option>
                {% for stock in stocks %}
                    <option value="{{ stock.symbol }}">{{ stock.name }} ({{ stock.symbol }})</option>
                {% endfor %}
            </select>
        </div>
        <div class="form-group">
            <label for="shares">Shares</label>
            <input class="form-control" id="shares" name="shares" placeholder="Number of shares" type="number">
        </div>
        <button class="btn btn-primary" type="submit">Sell</button>
    </form>
{% endblock %}

2. 修复app.py中的语法问题

你的app.py代码中,在register路由结束后、sell路由开始前有一个多余的单独字符c,这会导致Python语法错误,需要删除该行:

# 删除这一行单独的"c"
c
@app.route("/sell", methods=["GET", "POST"])
@login_required
def sell():
    # ... 原有代码

验证修复

完成上述修改后,重启Flask应用,访问Sell页面即可正常加载,点击Sell按钮也能正常提交表单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:17:03