This is a cs50 pset if you didn’t know.
{% extends "layout.html" %}
{% block title %}
Log In
{% endblock %}
{% block main %}
<form method="post">
<div class="form-group">
<select class="custom-select" style="width: auto;" name="select">
<option value="" disabled selected>Symbol</option>
{% for stock in symbols %}
<option value={{ stock }}>{{ stock }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input class="form-control" name="shares" placeholder="Shares" type="text">
</div>
<button class="btn btn-primary" type="submit">Sell</button>
</form>
{% endblock %}
Here is the app.py
@app.route("/sell", methods=["GET", "POST"])
@login_required
def sell():
user = db.execute("SELECT username FROM users WHERE users.id=?", session['user_id'])[0]['username']
if request.method == "GET":
symbols = []
unfiltered_stocks = db.execute("SELECT symbol FROM purchases WHERE user=?", user)
for stock in unfiltered_stocks:
symbols.append(stock['symbol'])
return render_template("sell.html")
You can consider that stocks is an array and its not empty
The Output is just the first placeholder option and nothing more
Advertisement
Answer
When you call render_template(), you can pass Python variables to it which makes them available in your Jinja template.
Change return render_template("sell.html") to return render_template("sell.html", symbols=symbols)