Python flask登录反复询问用户名

Python flask登录反复询问用户名,python,flask,flask-login,Python,Flask,Flask Login,我有以下代码: user.py app.py 登录\u controller.py index.html 据我所知,我把一切都安排好了。然而,登录似乎实际上并没有做任何事情 当前用户仍然是匿名用户。 注册/登录链接仍然显示,而不是我的个人资料链接。 对于站点的其他部分,我在其中设置了@login_required,它仍然会将我重定向到登录页面。 帮助?def get_idself必须是返回id,而不是用户名。试试这个: def get_id(self): return self.id

我有以下代码:

user.py

app.py

登录\u controller.py

index.html

据我所知,我把一切都安排好了。然而,登录似乎实际上并没有做任何事情

当前用户仍然是匿名用户。 注册/登录链接仍然显示,而不是我的个人资料链接。 对于站点的其他部分,我在其中设置了@login_required,它仍然会将我重定向到登录页面。 帮助?

def get_idself必须是返回id,而不是用户名。试试这个:

def get_id(self):
    return self.id
以下内容以英文写成:

取得身份证 此方法必须返回唯一标识此用户的unicode,并可用于从user_loader回调加载用户。 请注意,如果ID本机是int或 如果是其他类型,则需要将其转换为unicode


在user=user.objectsusername=username之后写入printuser的结果。first@NarnikGamarnik它打印出用户名我的名字:`*调试器PIN:261-357-181 Khushalani,Sagar---[04/Apr/2017 14:49:07]POST/login HTTP/1.1 302-`传递到加载用户id,而不是用户名谢谢@Narnikamarnik。我会试一试,然后回去报告,结果没有什么不同。它仍然保持注销状态。
app = Flask(
    __name__,
    static_folder='./static',
    template_folder='./static/templates'
)
app.config.from_pyfile(CONFIG_FILE)
app.register_blueprint(LOGIN)


@app.before_request
def request_setup():
    if current_user.is_authenticated:
        g.user = current_user.get_id()
    else:
        g.user = None

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login.user_login'


@lm.user_loader
def load_user(username):
    return LoginController.get_user(username)
LOGIN = Blueprint('login', __name__)

class LoginController(object):
    @staticmethod
    def get_user(username):
        return User.objects(username=username).first()

    @staticmethod
    @LOGIN.route('/login', methods=['GET', 'POST'])
    def user_login():
        if request.method == 'GET':
            return render_template('login.html')

        username = request.form.get('username')
        user = User.objects(username=username).first()
        if not user:
            flash('User does not exist!', 'error')
            return flask.redirect(url_for('home'))
        else:
            login_user(user)
            return flask.redirect(url_for('home'))
{% if current_user.is_authenticated %}
    <a class="item">My Profile</a>
    <a class="item" href="{{ login.user_logout }}">Logout</a>
{% else %}
    <a class="item" id="login_button">Register/Login</a>
{% endif %}
def get_id(self):
    return self.id