Как добавить Yahoo Finance API с помощью flask или django
Мой вопрос в том, что мы видим в app.py как (default="AMZN") мне нужно получить пользовательский ввод (или) пользователь может нажать на название компании, чтобы увидеть больше информации и продолжить дальше для каждой компании.
Я пытаюсь изучить flask и создал небольшое приложение, которое содержит список компаний с некоторой общей информацией о каждой из них. На главной странице отображается список всех компаний, а затем пользователь может нажать на название компании, чтобы увидеть более подробную информацию. Сейчас я пытаюсь понять, как API используются во flask, используя Yahoo Finance для получения некоторых данных о компании и отображения их на странице.
Возможен вариант работы на основе flask или django. Также мне нужно руководство с нуля. Я начинающий.
import yfinance as yahooFinance
# Here We are getting Facebook financial information
# We need to pass FB as argument for that
GetInformation = yahooFinance.Ticker(input("enter iput here: " ))
#GetInformation = yahooFinance.Ticker("FB")
# whole python dictionary is printed here
print(GetInformation.info)
Мой код app.py
from flask import Flask, redirect, url_for, render_template, request
import yfinance as yf
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
@app.route("/login", methods=["POST", "GET"])
def login():
if request.method == "POST":
user = request.form["nm"]
return redirect(url_for("user", usr=user))
else:
return render_template("login.html")
@app.route("/<usr>")
def user(usr):
return f"<h1>{usr}</h1>"
@app.route('/info', methods = ['POST', 'GET'])
def display_quote():
symbol = request.args.get('symbol', default="AMZN")
quote = yf.Ticker(symbol)
return quote.info
@app.route("/history")
def display_history():
symbol = request.args.get('symbol', default="AMZN")
period = request.args.get('period', default="1y")
interval = request.args.get('interval', default="1mo")
quote = yf.Ticker(symbol)
hist = quote.history(period=period, interval=interval)
data = hist.to_json()
return data
if __name__ == "__main__":
app.run(debug=True)
templates/login.html
{% block title %}Login Page{% endblock %}
{% block content %}
<form action="http://127.0.0.1:5000/login" method="post">
<p>Name:</p>
<p><input type="text" name="nm" /></p>
<p><input type="submit" value="submit"/></p>
</form>
{% endblock %}