def stock(): if not account.user_is_logged_in(): return redirect(url_for("login")) ticker = request.args.get("ticker", "AAPL") # TODO: no ticker is error... # Find the stock. stock = Stock.get_stock_from_db(ticker) # Check for errors. if stock == -1: N_STOCKS = 20 # number of stocks to retrieve tickers = Stock.get_all_tickers() stocks = Stock.get_stocks(N_STOCKS, True) # default: list of stocks by alpha order return render_template("home.html", error="No ticker matching that name could be found.", tickers = tickers, stocks = stocks, metric = "alpha", order = True, has_recs = account.user_has_recommendations()) # Get the prices with corresponding dates. # Produce formatted date strings to paste into HTML. price_time_series = Stock.get_time_series(ticker, 7) price_dates = price_time_series.keys() price_dates.sort() price_dates_str = [] price_values = [] for curr_date in price_dates: price_values.append(price_time_series[curr_date]) price_dates_str.append(curr_date.strftime("%m-%d")) # Compute price change now-- consistent with time series data! price_change = price_values[-1] - price_values[-2] # Put a blurb in the stock page if it is recommended. stock_is_recommended = False if account.user_has_recommendations(): if stock.ticker in Stock.recommended_tickers: stock_is_recommended = True return render_template("stock.html", ticker = stock.ticker, name = stock.name, latest_price = stock.cur_price, pe_ratio = stock.pe, market_cap = stock.cap, dividends = stock.dividends, beta = stock.beta, sustainability = stock.sustainability, socialgood = stock.socialgood, american = stock.american, price_change = price_change, price_series_dates = price_dates_str, price_series_values = price_values, recommended = stock_is_recommended)