Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask登录扩展无法注册,未定义登录管理器_Python_Flask_Flask Login - Fatal编程技术网

Python Flask登录扩展无法注册,未定义登录管理器

Python 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

我面临一个问题,我的应用程序无法识别“@login\u manager”装饰器,即使我已导入从extensions.py创建的login\u manager对象。我试图通过打印出应用程序中配置的包扩展来调试这个问题,但似乎不包括login_manager。也许这就是失败的原因。我也仔细阅读了贴出的问题,但我觉得这不是一个令人满意的答案。鉴于官方文档中推荐使用login_manager.init(app)

希望有人谁是真正的经验瓶能够帮助我在这里。谢谢大家!

app.py

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
...