用户登录源码,如何实现安全可靠的用户认证机制?
- 行业动态
- 2024-10-06
- 3559
用户登录源码通常包括输入用户名和密码,进行验证后返回登录结果。以下是一个简单的示例:,,“ python,def user_login(username, password):, if username == "admin" and password == "123456":, return "登录成功", else:, return "用户名或密码错误",,username = input("请输入用户名:"),password = input("请输入密码:"),result = user_login(username, password),print(result),“
用户登录是许多应用程序中的基本功能之一,下面我将提供一个基于Python Flask框架的用户登录系统的示例源码,包括前端和后端部分。
项目结构
/user_login_system /static /css style.css /templates login.html app.py models.py
1. 安装依赖
确保你已经安装了Flask,如果没有,请运行以下命令来安装:
pip install flask flaskbcrypt flasksqlalchemy
2. models.py 数据模型
from flask_sqlalchemy import SQLAlchemy from flask_bcrypt import generate_password_hash, check_password_hash db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(120), nullable=False) def __init__(self, username, password): self.username = username self.password = generate_password_hash(password).decode('utf8') def check_password(self, password): return check_password_hash(self.password, password)
3. app.py Flask应用
from flask import Flask, render_template, request, redirect, url_for, flash from models import User, db, generate_password_hash, check_password_hash app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db.init_app(app) with app.app_context(): db.create_all() @app.route('/') def index(): return redirect(url_for('login')) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username).first() if user and user.check_password(password): flash('Login successful!') return redirect(url_for('dashboard')) else: flash('Invalid username or password') return render_template('login.html') @app.route('/dashboard') def dashboard(): return "Welcome to the dashboard!" if __name__ == '__main__': app.run(debug=True)
4. templates/login.html HTML模板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <title>Login</title> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}"> </head> <body> <div > <h2>Login</h2> {% with messages = get_flashed_messages() %} {% if messages %} <ul > {% for message in messages %} <li>{{ message }}</li> {% endfor %} </ul> {% endif %} {% endwith %} <form method="post" action="/login"> <div> <label for="username">Username:</label> <input type="text" id="username" name="username" required> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password" required> </div> <button type="submit">Login</button> </form> </div> </body> </html>
5. static/css/style.css 样式表(可选)
body { fontfamily: Arial, sansserif; } .container { maxwidth: 300px; margin: 0 auto; padding: 20px; textalign: center; } .flashes { color: red; }
6. 初始化数据库并创建用户(可选)
在第一次运行之前,你可能需要手动添加一些用户到数据库,可以在Flask shell中进行操作:
export FLASK_APP=app.py flask shell >>> from models import User, db, generate_password_hash >>> user = User('testuser', generate_password_hash('password123')) >>> db.session.add(user) >>> db.session.commit()
是一个基本的Flask用户登录系统的实现,包括了前端HTML模板、后端逻辑处理、用户认证以及密码加密等功能,你可以根据需要进一步扩展和优化这个系统。
以上就是关于“用户登录源码”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/12268.html