Это приложение взято из Flask Руководства по документации и отлично работает локально, но при развертывании на Heroku я получаю «Внутреннюю ошибку сервера», когда я go перехожу на развернутую веб-страницу.
Из журналов Heroku:
respiter = self.wsgi(environ, resp.start_response)
TypeError: create_app() takes from 0 to 1 positional arguments but 2 were given
"GET /favicon.ico HTTP/1.1" 500 0 "-" "-"
И фрагмент из рассматриваемой функции create_app, расположенный в файле init .py (большая часть структуры проекта и другой код, взятый для краткости) :
# ├── flaskr/
# │ ├── __init__.py
# │ ├── db.py
# │ ├── schema.sql
# │ ├── auth.py
# ├── setup.py
# ├── Procfile
import os
from flask import Flask
def create_app(test_config=None):
app = Flask(__name__, instance_relative_config=True)
app.config.from_mapping(
DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
)
# other python files imported
return app
Это Procfile
web: gunicorn flaskr:create_app
Я предполагаю, что проблема в том, что Heroku пытается передать два аргумента в app = Flask (), и если да, то я не знаю, как обойти это в коде.