Flask实现MySQL用户登录指南
flask用户登录mysql

首页 2025-07-10 07:21:16



Flask 用户登录系统结合 MySQL 数据库:构建高效且安全的用户认证机制 在当今的 Web 开发领域,构建用户登录系统是几乎所有 Web 应用不可或缺的一部分

    使用 Flask 这一轻量级且灵活的 Python Web框架,结合 MySQL 这一成熟且功能强大的关系型数据库管理系统,可以高效地实现用户登录及认证功能

    本文将详细介绍如何使用 Flask 和 MySQL搭建一个用户登录系统,确保系统既高效又安全

     一、引言 Flask 是一个使用 Python编写的轻量级 Web 应用框架,其设计哲学是保持核心简单且可扩展

    MySQL 则是一个广泛使用的关系型数据库管理系统,以其高性能、可靠性和易用性而著称

    结合 Flask 和 MySQL,我们可以快速搭建一个具备用户注册、登录及认证功能的 Web 应用

     二、环境准备 在开始之前,我们需要确保以下环境已正确安装和配置: 1.Python:确保 Python 3.x 已安装

     2.Flask:通过 `pip install Flask` 安装 Flask

     3.MySQL:安装 MySQL 服务器,并创建一个数据库及用户

     4.- Flask-MySQLdb 或 SQLAlchemy:用于 Flask 与 MySQL 的数据库连接

    本文使用 Flask-MySQLdb 作为示例

     5.bcrypt:用于密码哈希,增强安全性

     三、项目结构 为了保持项目的清晰和可维护性,我们采用以下项目结构: my_flask_app/ │ ├── app.py ├── templates/ │├── login.html │├── register.html │└── home.html ├── static/ │└── style.css ├── config.py └── requirements.txt 四、配置 MySQL 数据库 首先,我们需要在 MySQL 中创建一个数据库和用户,并为其分配必要的权限

    假设我们创建一个名为`flask_db` 的数据库和一个名为`flask_user` 的用户

     sql CREATE DATABASE flask_db; CREATE USER flask_user@localhost IDENTIFIED BY your_password; GRANT ALL PRIVILEGES ON flask_db- . TO flask_user@localhost; FLUSH PRIVILEGES; 然后,在`flask_db`数据库中创建一个用户表`users`,用于存储用户信息

     sql USE flask_db; CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL ); 五、配置 Flask 应用 在`config.py`文件中,我们定义数据库连接配置

     python import os class Config: SECRET_KEY = os.urandom(24) SQLALCHEMY_DATABASE_URI = mysql+mysqldb://flask_user:your_password@localhost/flask_db SQLALCHEMY_TRACK_MODIFICATIONS = False 在`app.py`文件中,我们初始化 Flask 应用并加载配置

     python from flask import Flask, render_template, request, redirect, url_for, flash from flask_mysqldb import MySQL from werkzeug.security import generate_password_hash, check_password_hash import bcrypt app = Flask(__name__) app.config.from_object(config.Config) mysql = MySQL(app) Flash messages configuration app.config【FLASH_MESSAGES】 = True 六、实现用户注册功能 在`templates/register.html`文件中,我们创建一个简单的用户注册表单

     html Register

Register





Already have an account? Login

在`app.py`文件中,我们实现用户注册逻辑

     python @app.route(/register, methods=【GET, POST】) def register(): if request.method == POST: username = request.form【username】 password = request.form【password】 hashed_password = bcrypt.hashpw(password.encode(utf-8), bcrypt.gensalt()) cursor = mysql.connection.cursor() cursor.execute(SELECT - FROM users WHERE username = %s,(username,)) user = cursor.fetchone() if user is None: cursor.execute(INSERT INTO users(username, password) VALUES(%s, %s),(username, hashed_password.decode(utf-8))) mysql.connection.commit() flash(You have successfully registered!, success) return redirect(url_for(login)) else: flash(Username already exists. Please choose a different one., danger) return render_template(register.html) 七、实现用户登录功能 在`templates/login.html`文件中,我们创建一个简单的用户登录表单

     html Login

Login



MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道