Flask 应用:用户登录和注册

在本文中,我们将创建一个简单的 Flask 应用,实现用户登录和注册功能。我们将使用 Flask 的 PyMongo 扩展来连接 MongoDB 数据库,并使用 Flask_Login 扩展来处理用户认证。

1. 导入所需的库

首先,我们需要导入 Flask 和相关的扩展:

复制代码
from flask import Flask, render_template, request, redirect, url_for
from flask_pymongo import PyMongo
from flask_login import LoginManager, UserMixin, login_user, current_user, login_required, logout_user

2. 初始化 Flask 应用和 MongoDB 连接

接下来,我们需要初始化 Flask 应用和 MongoDB 连接:

复制代码
app = Flask(__name__)
mongo = PyMongo(app)
login_manager = LoginManager()
login_manager.init_app(app)

3. 定义 User 类

我们需要定义一个 User 类,用于存储用户信息。我们将使用 UserMixin 来提供一些基本的方法:

复制代码
class User(UserMixin):
    pass

4. 创建登录路由

现在,我们将创建一个登录页面路由。这个路由将处理登录请求,检查用户名和密码是否正确,并登录用户:

复制代码
@app.route("/login", methods=['GET', 'POST'])
@login_required
def login_page():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        user_find = mongo.db.user.find_one({'username': username})
        if user_find and user_find['password'] == password:
            user = User()
            user.id = username
            login_user(user)
            return render_template("home.html", current_user=current_user)
    return render_template("login.html")

在这个路由中,我们首先检查请求方法是否为 'POST'。如果是,我们从请求中获取用户名和密码,然后在 MongoDB 数据库中查找用户。如果找到了用户并且密码正确,我们将创建一个 User 对象,登录用户,并将用户重定向到主页。

5. 运行 Flask 应用

最后,我们将运行 Flask 应用:

复制代码
if __name__ == '__main__':
    app.run(debug=True, port=8000)

现在,我们已经创建了一个简单的 Flask 应用,实现了用户登录和注册功能。当然,这只是一个基本的示例,你可以根据需要添加更多的功能,例如注册表单、用户管理等。

Flask 应用:用户登录和注册

相关推荐
2601_9620990818 小时前
python flask sqlalchemy连接数据库流程介绍
数据库·python·flask·教程·sqlalchemy
烂蜻蜓18 小时前
Flask入门教程(附录):模板渲染API——Jinja2集成全解析
后端·python·flask
千里码aicood1 天前
Flask-基于图神经网络的谣言检测研究
人工智能·神经网络·flask
烂蜻蜓2 天前
Flask入门教程(三十一):实用函数与类API——全局工具函数速查
后端·python·flask
千里码aicood2 天前
flask-基于注意力机制的异常流量检测与自动防御系统
后端·python·flask
2601_962283882 天前
Python 开发框架:Django、Flask和FastAPI
python·django·flask·fastapi·web开发
Looooking2 天前
Python 之 Flask 的全局变量 g
后端·python·flask
Dream-Y.ocean2 天前
基于具身交互智能数字人,我用Flask搭了一个AI教学平台:课代表AI全流程实战
人工智能·flask·交互
零域码客3 天前
一文掌握 jQuery + Flask 全栈核心知识点(前端交互 + 后端接口 + 前后端联调)
前端·python·ajax·flask·jquery·前后端联调·web全栈
minhuan3 天前
基于Playwright数据采集,大模型对接Flask+SQLite,平滑升级向量库与分布式微服务26.5
人工智能·flask·大模型应用·大模型业务集成·微服务架构演进