簡體   English   中英

嘗試訪問我的 Heroku 應用程序(Python/Flask)時出現“沒有網絡進程運行”錯誤

[英]"No web processes running" error when trying to reach my Heroku app (Python/Flask)

我第一次創建了一個非常輕的 python/flask 應用程序,它完全寫在一個文件中。 我嘗試創建一個輕量級 API 並使其可從終端(curl 等)訪問,但在部署它並嘗試檢索數據后出現以下錯誤:

    desc="No web processes running" .....

應用程序文件夾結構:

文件夾名稱:

app.py Procfile requirements.txt

現在他們每個人都包含:

應用程序

    import flask
    import datetime
    import requests
    import json


    app = flask.Flask(__name__)


    @app.route('/covidData', methods=('GET', 'POST'))
    def get_data():

        country_input = flask.request.args.get('country')
        date_input = flask.request.args.get('date')
        date_split = date_input.split("-")
        date = datetime.datetime(int(date_split[2]),  int(date_split[0]), int(date_split[1])).strftime('%m-%d-%Y')

        data = requests.get('https://covid19.mathdro.id/api/daily/' + date)
        processed_data = data.json()

        for country in processed_data:
            if country['countryRegion'] == country_input:
                target_country = country

        requested_data = {"Country": target_country['countryRegion'], "Cases": target_country["confirmed"], "Recovered": target_country["recovered"]}

        return flask.jsonify(requested_data)


    if __name__ == '__main__':
        app.run(port=5000)

簡介:

    gunicorn wsgi:app

要求:

    requests==2.22.0
    Flask==1.1.1

我是如何部署的: 1. git init 2. heroku login 3. 創建一個 Procfile 4. heroku apps:create 5. git add 。 6. git commit -m "heroku deployment" 7. git push heroku master

然后,我嘗試從本地終端檢索數據:

    curl -X POST "https://covid-19-2020-api.herokuapp.com/covidData?country=Israel&date=03-20-2020"

並得到以下錯誤:

    heroku[router]: at=error code=H14 desc="No web processes running" method=POST path="/covidData?country=Israel&date=03-20-2020" host=covid-19-2020-api.herokuapp.com request_id=8b56257e-4c4f-46df-b8d9-ee487a4a5480 fwd="185.175.33.226" dyno= connect= service= status=503 bytes= protocol=https

可能是什么問題,任何建議,方向將不勝感激! 我是構建 API 的新手

謝謝!

好的,我找到了解決方案。 它分三步完成:
1. 在我的終端中運行heroku ps:scale web=1 - Getting Started on Heroku with Python
2. 由於我沒有單獨的 wsgi 文件,所以在我的 procfile 中,我輸入了文件名gunicorn app:app ,而不是 wsgi
3.在我的需求文件中添加了gunicorn

現在 curl 命令可以從任何終端運行

Procfile 應如下所示:

web: <command>
web: gunicorn wsgi:app

參考例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM