I use four arguments in quoted.html, but when I try to pass them to from my application.py, there is an error: TypeError: render_template() takes 1 positional argument but 4 were given
@app.route("/quote", methods=["GET", "POST"])
@login_required
def quote():
"""Get stock quote."""
#Look up for the stock symbol when user requires
if request.method == "POST":
#Check the symbol is none
if lookup(request.form.get("symbol")) == None:
return apology("The company's stock is not found!", 403)
#Show the stock result including name of the company and the stock price
else:
name = lookup(request.form.get("symbol"))["name"]
symbol = lookup(request.form.get("symbol"))["symbol"]
price = usd(lookup(request.form.get("symbol"))["price"])
return render_template("/quoted", name, symbol, price)
#Display the quote interface when user requires
else:
return render_template("quote.html")
Here is my quoted.html
{% extends "layout.html" %}
{% block title %}
Quote
{% endblock %}
{% block main %}
<form action="/quoted" method="get">
<fieldset>
<div class="form-group">
<h1> A share of {{ name }} ({{ symbol }}) costs {{ price }}</h1>
</div>
</fieldset>
</form>
{% endblock %}
Here is the return for the lookup function
def lookup(symbol):
"""Look up quote for symbol."""
# Parse response
try:
quote = response.json()
return {
"name": quote["companyName"],
"price": float(quote["latestPrice"]),
"symbol": quote["symbol"]
}