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 应用:用户登录和注册

相关推荐
癫狂的兔子7 小时前
【Python】【Flask】抽奖功能
开发语言·python·flask
万行11 小时前
机器学习&第一章
人工智能·python·机器学习·flask·计算机组成原理
计算机徐师兄13 小时前
Python基于Flask的广东旅游数据分析系统(附源码,文档说明)
python·flask·旅游数据分析·广东旅游数据分析系统·python广东数据分析系统·python广东旅游数据分析·python旅游数据分析系统
云和数据.ChenGuang14 小时前
fastapi flask django区别
人工智能·python·django·flask·fastapi
hudawei9961 天前
Flask 与 FastAPI 对比分析
python·flask·fastapi
半熟的皮皮虾1 天前
又重新写了个PDF工具箱-转换office格式/合并/拆分/删除常见操作都有了
python·程序人生·pdf·flask·开源·json·学习方法
小二·1 天前
Python Web 开发进阶实战:Flask-Login 用户认证与权限管理 —— 构建多用户待办事项系统
前端·python·flask
weixin_462446232 天前
Python 使用阿里云 STS 获取临时访问凭证并上传文件至 OSS:Flask API 实现
python·阿里云·flask
小二·2 天前
Python Web 全栈开发实战教程:基于 Flask 与 Layui 的待办事项系统
前端·python·flask
农夫山泉2号2 天前
【rk3588】——在rk3588上,用python进行qwen3-vl模型推理
python·flask·rk3588·qwen3-vl