在 Heroku 上使用 Flask 部署 React 应用程序时出现 H10 错误

时间:2021-03-17 15:39:57

标签: python node.js flask heroku

所以我正在尝试部署我的应用程序,该应用程序在后端有一个 React 前端和一个烧瓶,但是在尝试将其部署到 Heroku 时出现以下 H10 错误。我不确定我必须做什么才能让它发挥作用。

2021-03-17T15:10:50.239043+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=skk-stock.herokuapp.com request_id=845a47bf-a496-4159-8f07-d232ac5ec10f fwd="49.36.113.206" dyno= connect= service= status=503 bytes= protocol=https
2021-03-17T15:10:50.632559+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=skk-stock.herokuapp.com request_id=e257b95b-b16c-4866-814b-5b5610b15e37 fwd="49.36.113.206" dyno= connect= service= status=503 bytes= protocol=https

从日志看来问题是这样的:

2021-03-17T15:10:32.025278+00:00 app[web.1]: Failed to find attribute 'app' in 'api'.

以下是我的目录结构:

|-- Procfile
|-- README.md
|-- api
|-- build
|-- node_modules
|-- package-lock.json
|-- package.json
|-- public
|-- requirements.txt
`-- src

我的 Procfile 包含以下内容: web: gunicorn -w 4 api:app

在“api”文件夹中,我有一个 api.py,我在其中定义了应用程序:

from flask import Flask
from fetch_data import fetch_data, fetch_gainers, fetch_losers
from nsepy import get_history
from datetime import date,timedelta
import pandas as pd

app = Flask(__name__, static_folder='../build', static_url_path='/')

@app.route('/api/<string:ticker>', methods = ['GET'])
def api(ticker):
    return fetch_data(ticker)

@app.route('/history/<string:ticker>', methods = ['GET'])
def history(ticker):
    today = date.today()
    days = timedelta(30)
    period = today - days
    data = get_history(symbol = ticker, start = period, end = today)
    dates = []
    for day in data.index.values:
         dates.append(day.strftime("%d-%b-%Y"))

    formatted_data = pd.DataFrame(zip(dates, data["Close"]), columns = ["Date", "Price"])
    return formatted_data.to_json(orient="records")

@app.route('/gainers', methods = ['GET'])
def gainers():
    return fetch_gainers()

@app.route('/losers', methods = ['GET'])
def losers():
    return fetch_losers()

@app.errorhandler(404)
def not_found(e):
    return app.send_static_file('index.html')

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=False)

我不确定我哪里出错了。任何帮助将不胜感激,提前致谢。

0 个答案:

没有答案