Flask_login似乎无法与gunicorn一起使用

时间:2020-03-16 15:30:04

标签: python python-3.x flask gunicorn flask-login

我有一个flask项目,它使用flask_login来处理登录(duh)。 项目架构是这样的:

SWAP
├── Procfile
├── README.md
├── config.sh
├── get-pip.py
├── requirements.txt
├── run.sh
└── www
    ├── __init__.py
    ├── auth.py
    ├── db.sqlite
    ├── main.py
    ├── models.py
    ├── ressources
    ├── templates
    │   ├── *.html
    ├── tools.py
    └── wsgi.py

当我使用烧瓶运行时,一切都按预期工作,但是我尝试使用gunicorn并且我已经

AttributeError: 'Flask' object has no attribute 'login_manager'

现在这是我的wsgi.py:https://pastebin.com/CqdKhw0q
我的main.py:https://pastebin.com/HPys576M
和我的auth.py:https://pastebin.com/zLj1ULcC

当我运行gunicorn -w 1 www.wsgi:app时,我的/页面可以正常运行,但是如果我尝试访问/profile 在我的main.py文件中受@login_required保护的情况下,我遇到了以上错误。

我是刚接触枪械的人,所以可能有些愚蠢。

谢谢

1 个答案:

答案 0 :(得分:1)

问题不是出在枪械上,而是您忘记在flask_login中配置的login_manager。

因此,首先您必须导入login_manager

from flask_login import login_manager

然后按照flask_login documentation

的指示配置应用程序
login_manager = LoginManager()

login_manager.init_app(app)

@login_manager.user_loader
def load_user(user_id): 
    # Change this to retrieve the user from the db
    return User.get(user_id)

希望我能对您有所帮助