Python Heroku vague堆栈跟踪上的内部服务器错误

Python Heroku vague堆栈跟踪上的内部服务器错误,python,flask,heroku,Python,Flask,Heroku,我已经在Heroku上上传了我的网站,但不断收到内部服务器错误,即使在本地它工作正常 堆栈跟踪非常模糊,我无法理解其中到底发生了什么。但是,我尝试在Heroku CLI上记录错误,并使用Heroku日志--tail 设置我的烧瓶应用程序后 app.logger.addHandler(logging.StreamHandler(sys.stdout)) app.logger.setLevel(logging.ERROR) 程序文件 web: flask db upgrade; gunicorn

我已经在Heroku上上传了我的网站,但不断收到
内部服务器错误
,即使在本地它工作正常

堆栈跟踪非常模糊,我无法理解其中到底发生了什么。但是,我尝试在Heroku CLI上记录错误,并使用
Heroku日志--tail

设置我的烧瓶应用程序后

app.logger.addHandler(logging.StreamHandler(sys.stdout))
app.logger.setLevel(logging.ERROR)
程序文件

web: flask db upgrade; gunicorn run:app
worker: rq worker progresso-tasks
├── Procfile
├── app
│   ├── __init__.py
│   ├── auth
│   ├── email.py
│   ├── main
│   ├── models.py
│   ├── portfolio
│   ├── static
│   ├── tasks.py
│   └── templates
├── app.db
├── config.py
├── dump.rdb
├── gulpfile.js
├── package-lock.json
├── package.json
├── requirements.txt
├── run.py
├── setup.py
└── tests.py
在运行heroku日志之后--tail我得到

2020-07-22T16:01:55.951690+00:00 app[web.1]: [2020-07-22 16:01:55 +0000] [15] [ERROR] Error handling request /
2020-07-22T16:01:55.951715+00:00 app[web.1]: Traceback (most recent call last):
2020-07-22T16:01:55.951716+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 134, in handle
2020-07-22T16:01:55.951717+00:00 app[web.1]: self.handle_request(listener, req, client, addr)
2020-07-22T16:01:55.951718+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 175, in handle_request
2020-07-22T16:01:55.951718+00:00 app[web.1]: respiter = self.wsgi(environ, resp.start_response)
2020-07-22T16:01:55.951719+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
2020-07-22T16:01:55.951720+00:00 app[web.1]: return self.wsgi_app(environ, start_response)
2020-07-22T16:01:55.951720+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app
2020-07-22T16:01:55.951721+00:00 app[web.1]: response = self.handle_exception(e)
2020-07-22T16:01:55.951721+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1867, in handle_exception
2020-07-22T16:01:55.951722+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2020-07-22T16:01:55.951722+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
2020-07-22T16:01:55.951723+00:00 app[web.1]: raise value
2020-07-22T16:01:55.951723+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
2020-07-22T16:01:55.951724+00:00 app[web.1]: response = self.full_dispatch_request()
2020-07-22T16:01:55.951724+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request
2020-07-22T16:01:55.951725+00:00 app[web.1]: rv = self.handle_user_exception(e)
2020-07-22T16:01:55.951725+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception
2020-07-22T16:01:55.951726+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2020-07-22T16:01:55.951726+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
2020-07-22T16:01:55.951727+00:00 app[web.1]: raise value
2020-07-22T16:01:55.951727+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request
2020-07-22T16:01:55.951728+00:00 app[web.1]: rv = self.dispatch_request()
2020-07-22T16:01:55.951732+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request
2020-07-22T16:01:55.951733+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
2020-07-22T16:01:55.951733+00:00 app[web.1]: File "/app/app/main/routes.py", line 23, in home
2020-07-22T16:01:55.951734+00:00 app[web.1]: .order_by(ProjectPortfolio.timestamp.desc()).all()[1]
2020-07-22T16:01:55.951743+00:00 app[web.1]: IndexError: list index out of range
2020-07-22T16:01:55.952127+00:00 app[web.1]: 10.63.145.103 - - [22/Jul/2020:16:01:55 +0000] "GET / HTTP/1.1" 500 0 "-" "-"
2020-07-22T16:01:55.953043+00:00 heroku[router]: at=info method=GET path="/" host=progresso-nel-edilizia.herokuapp.com request_id=a7af4708-c3f2-4aae-9297-5fe404002c0b fwd="109.96.245.144" dyno=web.1 connect=0ms service=119ms status=500 bytes=244 protocol=https
这个错误很奇怪,因为在我的本地主机上它可以正常工作。这是否意味着我的数据库处理不正确

为我的数据库使用了postgresql插件

项目树

web: flask db upgrade; gunicorn run:app
worker: rq worker progresso-tasks
├── Procfile
├── app
│   ├── __init__.py
│   ├── auth
│   ├── email.py
│   ├── main
│   ├── models.py
│   ├── portfolio
│   ├── static
│   ├── tasks.py
│   └── templates
├── app.db
├── config.py
├── dump.rdb
├── gulpfile.js
├── package-lock.json
├── package.json
├── requirements.txt
├── run.py
├── setup.py
└── tests.py

除此之外,我不知道是什么原因导致
内部服务器错误
,任何想法都将不胜感激

这主要是因为您的

.order_by(ProjectPortfolio.timestamp.desc()).all()[1]
正在返回一个空列表,然后您要求返回其1索引值,该值不会退出。它在本地计算机上工作的可能原因是ProjectPortfolio返回的数据与远程数据库不同

我想尝试一下:

protfolios = ProjectPortfolio.query.order_by(ProjectPortfolio.timestamp.desc()).all()
if len(portfolios) >= 1:
    return portfolios[1]

我猜这个查询…
.order\u by(ProjectPortfolio.timestamp.desc()).all()
将返回一个空查询集。因此,索引1处的项不存在,但它在本地工作,这意味着它存在于数据库中。如果我转到postgresql加载项表,我可以计算其中的所有表。问题是…我不知道里面有没有数据