CS50 Финансы - не можете получить цитату из формы? - PullRequest
0 голосов
/ 17 февраля 2020

Я работаю над решением финансовых проблем CS50. (https://cs50.harvard.edu/x/2020/tracks/web/finance/)

В этом задании пользователь должен иметь возможность отправить форму на странице html, чтобы запросить текущую цену доли в компании.

Ниже приведено то, что я сделал для маршрута цитаты (используя python и flask):

@app.route("/quote", methods=["GET", "POST"])
@login_required
def quote():
"""Get stock quote."""

if request.method == "POST":
    quote = lookup(request.form.get("requested_share"))

    if quote == None:
        return apology("No share found for this symbol")

    return render_template("quoted.html", quote=quote)

# User reached route via GET (as by clicking a link or via redirect)
else:
    return render_template("quote.html")

А вот что я написал для "цитаты" html page:

{% extends "layout.html" %}

{% block title %}
    Quote
{% endblock %}

{% block main %}
    <form action="/quote" method="post">
        <div class="form-group">
                <input autocomplete="off" autofocus class="form-control" name="requested_share" placeholder="e.g. TSLA" type="text" />
        </div>
        <button class="btn btn-primary" type="submit">Request Quote</button>
    </form>
{% endblock %}

Наконец, вот что я получил для "цитируемой" html страницы (куда пользователь должен попасть, если его запрос на котировку будет успешным):

{% extends "layout.html" %}

{% block title %}
    Quoted
{% endblock %}

{% block main %}
<p>A share of {{ quote["name"] }} costs {{ quote["price"] }}</p>
{% endblock %}

Однако, когда я пытаюсь это сделать, кажется, что он ведет себя так, как будто пользователь ничего не набрал. Вместо того, чтобы перейти на цитируемую страницу. html, он переходит на страницу извинений от эта часть кода:

    if quote == None:
        return apology("No share found for this symbol")

Кто-нибудь может помочь с этим? Я смотрел на это целую вечность, все еще не вижу, где это идет не так. Я подумал, что это может быть связано с ключом API, хотя я следовал инструкциям на странице

...