欢迎访问宙启技术站
智能推送

如何通过flask_login.current_user.name()获取当前用户的姓名

发布时间:2024-01-03 20:18:33

要通过flask_login.current_user.name()获取当前用户的姓名,需要在Flask应用中进行一些配置和设置。以下是一个使用例子,包含了在Flask应用中配置flask_login和使用flask_login.current_user.name()获取当前用户姓名的步骤。

1. 安装Flask和Flask-Login

   $ pip install Flask Flask-Login
   

2. 创建一个简单的Flask应用

   # app.py
   from flask import Flask, render_template
   from flask_login import LoginManager, UserMixin, login_required, current_user

   app = Flask(__name__)
   app.config['SECRET_KEY'] = 'your-secret-key'

   # 3. 实例化LoginManager
   login_manager = LoginManager(app)
   login_manager.login_view = 'login'

   # 4. 创建一个简单的用户类
   class User(UserMixin):
       def __init__(self, user_id, name):
           self.id = user_id
           self.name = name

   users = {
       '1': User('1', 'Alice'),
       '2': User('2', 'Bob')
   }

   @login_manager.user_loader
   def load_user(user_id):
       return users.get(user_id)

   # 5. 创建登录页面和保护的页面
   @app.route('/login')
   def login():
       return render_template('login.html')

   @app.route('/')
   @login_required
   def home():
       return f'Hello, {current_user.name}!'

   if __name__ == '__main__':
       app.run()
   

3. 创建登录页面模板

   <!-- templates/login.html -->
   <form action="" method="POST">
     <input type="text" name="username" placeholder="Username">
     <input type="submit" value="Login">
   </form>
   

4. 启动应用

   $ python app.py
   

5. 在浏览器上访问 http://localhost:5000/login ,使用用户名 '1' 或 '2' 进行登录,即可在登录后的页面看到当前用户的姓名。

在上述例子中,我们通过以下步骤获取当前用户的姓名:

- 首先,在Flask应用中实例化LoginManager,这将用于管理用户的登录状态和处理登录操作。

- 然后,创建一个简单的用户类,通过继承flask_login.UserMixin,并设置用户的id和name属性。

- 在一个users字典中存储一些用户对象,供登录管理器加载用户使用。

- 创建一个登录页面(login)和一个需要保护的页面(home)。在home页面中,通过flask_login.current_user.name获取当前用户的姓名。

- 最后,在main函数中运行应用,并设置路由和视图函数。

通过flask_login.current_user.name()即可获取当前用户的姓名,并在需要的地方进行使用。