Python Flask登录扩展无法注册,未定义登录管理器
我面临一个问题,我的应用程序无法识别“@login\u manager”装饰器,即使我已导入从extensions.py创建的login\u manager对象。我试图通过打印出应用程序中配置的包扩展来调试这个问题,但似乎不包括login_manager。也许这就是失败的原因。我也仔细阅读了贴出的问题,但我觉得这不是一个令人满意的答案。鉴于官方文档中推荐使用login_manager.init(app) 希望有人谁是真正的经验瓶能够帮助我在这里。谢谢大家! app.pyPython Flask登录扩展无法注册,未定义登录管理器,python,flask,flask-login,Python,Flask,Flask Login,我面临一个问题,我的应用程序无法识别“@login\u manager”装饰器,即使我已导入从extensions.py创建的login\u manager对象。我试图通过打印出应用程序中配置的包扩展来调试这个问题,但似乎不包括login_manager。也许这就是失败的原因。我也仔细阅读了贴出的问题,但我觉得这不是一个令人满意的答案。鉴于官方文档中推荐使用login_manager.init(app) 希望有人谁是真正的经验瓶能够帮助我在这里。谢谢大家! app.py from flask_l
from flask_login import login_required, current_user
from flask import Flask, render_template,request
from amazonreviews import main_func as m
import os
import json
def create_app():
app = Flask(__name__)
with app.app_context():
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://///somepath/abc.sqlite3'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.secret_key = os.urandom(24)
#Initialise extensions
register_extensions(app)
return app
def register_extensions(app):
from extensions import db
from extensions import migrate
from extensions import login_manager
db.init_app(app)
migrate.init_app(app,db)
login_manager.init_app(app)
for key in app.extensions:
print(key)
app = create_app()
#A user loader tells Flask-Login how to find a specific user from the ID that is stored in their session cookie
@login_manager.user_loader
def load_user(user_id):
from model import User
# since the user_id is just the primary key of our user table, use it in the query for the user
return User.query.get(int(user_id))
extensions.py
#Import external packages and create external objects
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_migrate import Migrate
migrate = Migrate()
db = SQLAlchemy()
login_manager = LoginManager()
从扩展输出打印密钥:
@无法识别登录\u管理器装饰器:
在该代码中,
登录管理器
只有在调用注册扩展时才会定义
假设login\u manager
的实例是在extensions
中创建的,则可以将导入提升到顶部。例如:
import json
from extensions import login_manager
...
@login_manager.user_loader
...