【问题标题】:CS50 Finance Index. Can't get data to appear in the HTML tableCS50 金融指数。无法让数据出现在 HTML 表格中
【发布时间】:2019-03-12 01:13:24
【问题描述】:

我正在研究财务 pset 的索引部分。我无法让股票信息显示在 html 表中。我很难思考如何循环浏览股票信息,而不必使用新数据创建新字典。有人可以帮助我了解我正在采取的这个方向吗?有人可以给我一个“更好”的方法吗?我觉得这不是解决这个问题的“最佳”方法。希望代码正确显示,我还在学习如何使用这个网站。

@app.route("/") @login_required def index():
    """Show portfolio of stocks"""

    #set portfolio GROUPED BY symbol
    portfolio = db.execute("SELECT symbol, SUM(shares) AS share_total FROM portfolio WHERE user_id = :user_id GROUP BY symbol", user_id = session["user_id"])

    row = db.execute("SELECT cash FROM users WHERE id = :user_id", user_id = session["user_id"])
    remaining_cash = row[0]["cash"]

    total_holding_value = 0
    stock_info = {}

    for stock in portfolio:
        symbol = stock["symbol"]
        shares = stock["share_total"]
        quote = lookup(symbol)
        price = quote["price"]
        holding_value = shares * price
        total_holding_value += holding_value
        stock_info.update({"symbol":symbol, "shares":shares, "price":price, "holding_value":holding_value})

    grand_total = total_holding_value + remaining_cash

    return render_template("index.html", stock_info = stock_info, remaining_cash = remaining_cash, grand_total = grand_total)

{% extends "layout.html" %}

{% block title %}
    Portfolio
{% endblock %}

{% block main %}
    <table class="table table-bordered">
        <thead>
            <th>Symbol</th>
            <th>Shares</th>
            <th>Price</th>
            <th>Total</th>
        </thead>
        <tbody>
            {% for stock in stock_info %}
            <tr>
                <td>{{ stock.symbol }}</td>
                <td>{{ stock.shares }}</td>
                <td>{{ stock.price }}</td>
                <td>{{ stock.holding_value }}</td>
            </tr>
            {% endfor %}
            <tr>
                <td></td>
                <td></td>
                <td>Remaining Balance:</td>
                <td>{{ remaining_cash }}</td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td>Grand Total:</td>
                <td>{{ grand_total }}</td>
            </tr>
        </tbody>
    </table>
{% endblock %}

【问题讨论】:

    标签: cs50


    【解决方案1】:

    这里有一个问题stock_info.update({"symbol":symbol, "shares":shares, "price":price, "holding_value":holding_value})。来自python doc [empashis added]。

    更新([其他])

    使用其他键/值对更新字典,覆盖现有键。返回无。

    您可能希望将一个列表 字典发送到 html。考虑将stock_info 声明为一个列表,并使用append 方法添加每只股票。

    【讨论】:

    • 啊,现在你这么说是有道理的。它适用于这 2 个更改。有没有另一种方法可以在不制作新字典的情况下解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2012-04-30
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多