ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

使用 Flask 实现简单的登录注册功能

使用 Flask 实现简单的登录注册功能 目录1. 引言2. 环境准备3. 数据库设置4. Flask 应用基本配置5. 实现用户注册6. 实现用户登录7. 路由配置8. 创建前端页面9. 结论1. 引言在这篇文章中我们将使用 Flask 框架创建一个简单的登录和注册系统。Flask 是一个轻量级的 Python Web 框架适合快速开发 Web 应用。2. 环境准备安装 Flask可以通过 pip 安装 Flask 和相关依赖pip install Flask以下是具体配置from flask import Flask, render_template, request, render_template_string, redirect, url_for from flask_mysqldb import MySQL from werkzeug.security import generate_password_hash, check_password_hash from config import Config # 导入配置文件创建项目结构flask_demologin/ ├── app.py ├── config.py ├── templates/ │ ├── login.html │ ├── res.html │ └── index.html └── static/ └── css/ └── img/3. 数据库设置使用 MySQL创建数据库及用户表。CREATE DATABASE demologin;USE demologin;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(100) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL);4. Flask 应用基本配置config.py文件配置数据库连接class Config: MYSQL_HOST localhost MYSQL_USER root # 替换为你的 MySQL 用户名 MYSQL_PASSWORD root # 替换为你的 MySQL 密码 MYSQL_DB demologin # 替换为你的 数据库名称5. 实现用户注册在 app.py 中创建注册路由app.route(/register, methods[POST]) def register(): name request.form.get(username) pwd request.form.get(password) if not name or not pwd: return render_template_string(用户名和密码不能为空a href/返回登录/a), 400 cur mysql.connection.cursor() cur.execute(SELECT * FROM users WHERE username %s, (name,)) user cur.fetchone() if user: return render_template_string(用户名已存在a href/返回登录/a), 400 hashed_pwd generate_password_hash(pwd) cur.execute(INSERT INTO users (username, password) VALUES (%s, %s), (name, hashed_pwd)) mysql.connection.commit() cur.close() return render_template_string(注册成功,a href/返回登录/a), 2016. 实现用户登录在 app.py 中创建登录路由app.route(/login, methods[POST]) def login(): name request.form.get(username) pwd request.form.get(password) if not name or not pwd: return render_template_string(用户名和密码不能为空a href/返回注册/a), 400 cur mysql.connection.cursor() cur.execute(SELECT * FROM users WHERE username %s, (name,)) user cur.fetchone() if user and check_password_hash(user[2], pwd): # user[2] 是密码字段 return redirect(url_for(home)) # 登录成功重定向到主页 else: return 用户名或密码错误, 4017. 路由配置设置首页和重定向app.route(/) def home(): return render_template(index.html) # 渲染主页模板设置登录页面和注册页面和重定向app.route(‘/’)def Index_login(): # put application’s code herereturn render_template(‘login.html’)app.route(‘/res’)def Index_res(): # put application’s code herereturn render_template(‘res.html’)8. 创建前端页面login.html和res.html的简单示例!-- login.html -- div classcont-parent div classcont div classform sign-in h2Welcome back, Doctor/h2 form action/login methodpost label span用户名/span input typetext nameusername placeholderUsername required/ /label label span密码/span input typepassword namepassword placeholderPassword required/ /label button typesubmit classsubmit登录/button /form p classforgot-pass忘记密码?/p button typebutton classfb-btn链接 spanfacebook/span/button /div div classsub-cont div classimg div classimg__text m--up h2刚来?/h2 p那就a href/res注册/a一个吧!/p /div /div /div /div /div !-- res.html -- div classcont-parent div classcont div classform sign-in h2Time to feel like home,/h2 form action/register methodpost label span用户名/span input typetext nameusername placeholderUsername required/ /label label span密码/span input typepassword namepassword placeholderPassword required/ /label button typesubmit classsubmit注册/button /form button typebutton classfb-btnJoin with spanfacebook/span/button /div div classsub-cont div classimg div classimg__text m--up h2已经有账号了?/h2 p那就去a href/登录/a吧!/p /div /div /div /div /div9. 结论通过本文我们实现了一个基本的登录和注册功能。以下是实现的效果图前端靠大家自由发挥提供的html代码进作为参考
返回列表