zoukankan      html  css  js  c++  java
  • flask-login

    1. 创建扩展对象实例
    from flask_login import LoginManager
    login_manager = LoginManager()
    login_manager.login_view = 'auth.login'
    # 上面这一句是设置登录视图的名称,如果一个未登录用户请求一个只有登录用户才能访问的视图,
    # 则闪现一条错误消息,并重定向到这里设置的登录视图。
    # 如果未设置登录视图,则直接返回401错误。
    # 默认的错误消息是:Please log in to access this page.。
    login_manager.login_message = 'Unauthorized User'
    # 设置闪现的错误消息的类别
    login_manager.login_message_category = "info"
    

    1. 使用Flask-Login之前,你需要先定义用户类,该类必须实现以下三个属性和一个方法:

    属性 is_authenticated
    当用户登录成功后,该属性为True。

    属性 is_active
    如果该用户账号已被激活,且该用户已登录成功,则此属性为True。

    属性 is_anonymous
    是否为匿名用户(未登录用户)。

    方法 get_id()
    每个用户都必须有一个唯一的标识符作为ID,该方法可以返回当前用户的ID,这里ID必须是Unicode。

    因为每次写个用户类很麻烦,Flask-Login提供了”UserMixin”类,你可以直接继承它即可:

    1. @login_required
      这个装饰器放在那些需要登录才能访问的视图函数前面。如果用户未登录,它就会将页面重定向到登录视图,也就是我们在第一节中配置的”login_manager.login_view”的视图。

    2. 通过 current_user 对象来访问当前用户。
      5.登录功能
      login_user(user, form.remember_me.data)
      在登录视图中,调用”login_user()”方法时,传入”remember=True”参数,即可实现“记住我”功能:
      Flask-Login是通过在Cookie实现的,它会在Cookie中添加一个”remember_token”字段来记住之前登录的用户信息,所以禁用Cookie的话,该功能将无法工作。

    3. 登出用户:
      logout_user()
      该方法来帮助你清理用户Session。

    在狗书登录这章user类里有下面这段,
        @property
        def password(self):                    
            raise AttributeError('password is not a readable attribute')
    
        @password.setter
        def password(self, password):
            self.password_hash = generate_password_hash(password)
    
    加了@property装饰器后
    user=User()
    user.password 就等于调用上面那个方法
    user.password='1113123ada' 就等于调用下面那个方法
    相当于把方法用作属性。
    详细解释看这个:https://blog.csdn.net/u013205877/article/details/77804137
    
  • 相关阅读:
    [NOIP2015] D1T2 信息传递
    Codeforces #447 Div.2 Tutorial
    python进阶
    Vue入门
    python基础
    python介绍
    React笔记_(3)_react语法2
    React笔记_(2)_react语法1
    React笔记_(1)_react概述
    webpack笔记_(3)_First_Project
  • 原文地址:https://www.cnblogs.com/plusUltra/p/10608338.html
Copyright © 2011-2022 走看看