python flask框架下登录注册界面_Python-用户登录 Flask-Login

本文介绍了如何在Python的Flask框架中使用Flask-Login组件实现用户登录功能。从用户登录的基本步骤出发,展示了Flask-Login的使用方法,包括初始化、用户模块、用户类的创建、登录页面的实现以及登录验证等关键环节。此外,还提到了Flask-Login的其他特性,如记住我功能和Session防护机制。
摘要由CSDN通过智能技术生成

用户登录功能是 Web 系统一个基本功能,是为用户提供更好服务的基础,在 Flask 框架中怎么做用户登录功能呢?今天学习一下 Flask 的用户登录组件 Flask-Login

Python 之所以如此强大和流行,除了本身易于学习和功能丰富之外,最重要的是因为各种类库和组件,可以说没有 Python 做不了的事情,只有不知道的组件。

之所以选择 Flask-Login,是因为它基于Session,适合做有 UI 交互的用户登录,用我们学习了的 Flask 表单做演示,更容易理清用户登录的流程

用户登录说明

Flask-Login 和其他 Flask 组件并没有太大区别,有必要开始之前了解下用户登录的步骤:

登录:用户提供登录凭证(如用户名和密码)提交给服务器

建立会话:服务器验证用户提供的凭证,如果通过验证,则建立会话( Session ),并返回给用户一个会话号( Session id )

验证:用户在后续的交互中提供会话号,服务器将根据会话号( Session id )确定用户是否有效

登出:当用户不再与服务器交互时,注销与服务器建立的会话

依据以上步骤,我们设计一个应用场景,作为实现:

提供一个主页,需要登录才能访问

如果没有登录,跳转到登录页面,登录成功再跳回

登录成功后,可以点击登出退出登录

在登录页面提供注册连接,点击后跳转到注册页面

注册完成后,跳转到登录页面

初始化

先实例化 login_manager 对象,然后用它来初始化应用:

from flask importFlaskfrom flask_login importLoginManager#...

app = Flask(__name__) #创建 Flask 应用

app.secret_key= 'abc' #设置表单交互密钥

login_manager= LoginManager() #实例化登录管理对象

login_manager.init_app(app) #初始化应用

login_manager.login_view = 'login' #设置用户登录视图函数 endpoint

表单交互时,所以要设置secret_key,以防跨域攻击( CSRF )

登录管理对象 login_manager 的 login_view 属性,指定登录页面的视图函数 (登录页面的 endpoint),即验证失败时要跳转的页面,这里设置为登录页

用户模块

用户数据

要做用户验证,需要维护用户记录,为了方便演示,使用一个全局列表 USERS 来记录用户信息,并且初始化了两个用户信息:

from werkzeug.security importgenerate_password_hash#...

USERS =[

{"id": 1,"name": 'lily',"password": generate_password_hash('123')

},

{"id": 2,"name": 'tom',"password": generate_password_hash('123')

}

]

用户信息只包含最基本的信息:

name 为登录用户名</

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask是一个轻量级的Python Web框架,它提供了简单而灵活的方式来构建Web应用程序。在Flask框架中,可以使用模板引擎来渲染动态页面,实现登录注册功能也是很常见的需求。 要实现登录注册页面,可以按照以下步骤进行: 1. 创建Flask应用程序: 首先,需要导入Flask模块并创建一个Flask应用程序对象。例如: ```python from flask import Flask, render_template, request app = Flask(__name__) ``` 2. 创建登录和注册的路由: 在Flask中,可以使用装饰器来定义路由。创建两个路由分别用于登录和注册页面。例如: ```python @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': # 处理登录逻辑 return '登录成功' return render_template('login.html') @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'POST': # 处理注册逻辑 return '注册成功' return render_template('register.html') ``` 3. 创建登录和注册的HTML模板: 在Flask中,可以使用模板引擎来渲染动态页面。创建两个HTML模板分别用于登录和注册页面。例如: ```html <!-- login.html --> <form method="POST" action="/login"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">登录</button> </form> <!-- register.html --> <form method="POST" action="/register"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">注册</button> </form> ``` 4. 运行Flask应用程序: 最后,使用Flask的run()方法来运行应用程序。例如: ```python if __name__ == '__main__': app.run() ``` 这样,你就可以通过访问`http://localhost:5000/login`和`http://localhost:5000/register`来查看登录和注册页面了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值