Я хотел бы получить значение 'акции' из каждой строки в этой таблице. Поэтому я делаю следующее:
db = SQL("sqlite:///finance.db")
portfolios = db.execute("SELECT stock, names, SUM(shares) AS nofshares, price FROM transactions WHERE id=:id GROUP BY stock", id=session["user_id"] )
for row in portfolios:
print(row["stock"])
, но когда я запускаю программу, я получаю всю строку и только одну из них:
{'stock': 'NKE', 'names': 'NIKE, Inc.', 'nofshares': 41, 'price': 83.23}
Я не знаю, что я делаю неправильно. Я хотел бы напечатать стоимость акций из каждой строки в этом словаре
ЭТО ФУНКЦИЯ, КОТОРАЯ РАБОТАЕТ В МОЕЙ СЕТИ:
@app.route("/sell", methods=["GET", "POST"])
@login_required
def sell():
portfolio = db.execute("SELECT stock, names, SUM(shares) AS nofshares, price FROM transactions WHERE id=:id GROUP BY stock", id=session["user_id"])
if request.method == "GET":
return render_template("sell.html", portfolio=portfolio);
if request.method == "POST":
nofsharess = request.form.get("shares")
symboltosell = request.form.get("symbol")
for row in portfolio:
if row["stock"] == symboltosell:
if nofsharess > row["nofshares"]:
return apology("You dont have that many stocks to sell", 403);
return redirect("/")
````````
THIS IS MY HTML AND WORKS FINE
````
{% block main %}
<form action="/sell" method="post">
<div class="form-group">
<select autofocus class="form-control" name="symbol" placeholder="Symbol">
<option value="" selected data-default>Symbol</option>
{% for row in portfolio %}
<option value=symbol >{{ row.stock }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input autocomplete="off" autofocus class="form-control" name="shares" placeholder="Shares" type="number" min="1">
</div>
<button class="btn btn-primary" type="submit">Sell</button>
</form>
{% endblock %}
`````