Heroku gunicorn flask登录无法正常工作

2024-04-20 07:45:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个flask应用程序,它使用flask登录进行身份验证。使用flask内置的web服务器和本地运行的gunicorn,在本地一切都很好。但当它在heroku上时,它是有问题的,有时它让我登录,有时却没有。当我在导航几秒钟内成功登录时,我的会话就会被破坏并自动注销。这应该发生在用户注销时。在

我的视图中的以下代码片段可能与此相关:

@app.before_request
def before_request():
    g.user = current_user

# I have index (/) and other views (/new) decorated with @login_required

我可能有类似的问题with this。它还没有任何答案,从我从评论中读到的,作者只是用python app.py运行他的应用程序。这是通过使用flask的内置web服务器实现的。但是我似乎不能重复他的解决方法,因为运行app.run(host='0.0.0.0')在端口5000运行应用程序,而且由于权限原因,我似乎无法设置{}。在

我看不到任何有用的日志,除了它没有验证,即使我应该。在

当我通过身份验证并尝试交替导航到/new/时的部分日志,直到它将我注销:

^{pr2}$

程序文件:

web: gunicorn app:app


Tags: 服务器身份验证webapp应用程序flasknewheroku
2条回答

按照krato的说法(这让它工作起来了),我的应用程序仍然不能完美地工作。即使它第一次登录,我也可以保持刷新,最终会被注销。所以在阅读了this article之后,我将gunicorn设置为只使用一个worker,如下所示:

网址:gunicorn-w1:应用程序预加载

似乎起了作用。在

通过向gunicorn添加 preload选项解决了这个问题。我不太清楚这是怎么解决问题的,如果有人能解释一下,我将不胜感激。在

更新的过程文件:

web: gunicorn app:app preload

相关问题 更多 >