# 用户登录表单的简易实现:前后端交互的无缝验证


背景介绍

为用户提供一个登录表单,实现用户名和密码的验证功能,支持在本地文件中保存登录状态。该表单采用HTML表单结构,结合JavaScript验证逻辑,使用JSON保存状态信息,无需依赖框架。


思路分析

1. 表单设计

  • 使用HTML表单输入用户名和密码,支持前后端交互。
  • 输入框验证用户名和密码的字符限制(如长度、特殊字符限制)。
  • 通过JavaScript实现验证逻辑,确保用户名和密码符合规则。

2. 本地状态保存

  • 使用Python中的json模块读取和写入JSON数据。
  • 本地文件路径需明确,避免外部依赖。

代码实现

1. HTML 表单实现

<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
    <script>
        function validateLogin() {
            const username = document.getElementById('username').value;
            const password = document.getElementById('password').value;

            if (!username || !password) {
                alert("请输入用户名和密码!");
                return;
            }

            // 验证用户名长度(6-15位)
            if (username.length < 6 || username.length > 15) {
                alert("用户名长度在6-15位之间!");
                return;
            }

            // 验证密码字符(字母、数字、符号)
            const validChars = /[\w-]/g;
            if (!validChars.test(password)) {
                alert("密码必须包含字母、数字和符号!");
                return;
            }

            // 保存状态
            localStorage.setItem('loginStatus', "已验证成功");
            alert("登录成功!");
        }
    </script>
</head>
<body>
    <h2>用户登录</h2>
    <input type="text" id="username" placeholder="用户名">
    <input type="password" id="password" placeholder="密码">
    <button onclick="validateLogin()">登录</button>
</body>
</html>

2. JavaScript 逻辑实现

function validateLogin() {
    const username = document.getElementById('username').value;
    const password = document.getElementById('password').value;

    // 验证用户名长度  
    if (username.length < 6 || username.length > 15) {
        alert("用户名长度在6-15位之间!");  
        return;
    }  

    // 验证密码字符  
    const validChars = /[\w-]/g;  
    if (!validChars.test(password)) {
        alert("密码必须包含字母、数字和符号!");  
        return;
    }  

    // 保存状态  
    localStorage.setItem('loginStatus', "已验证成功");
    alert("登录成功!");
}

3. Python 实现(简化版本)

import json

def save_login_status(username, password):
    try:
        with open('login_data.json', 'w') as f:
            json.dump({'username': username, 'password': password}, f)
    except Exception as e:
        print(f"保存登录状态失败: {e}")

def load_login_status():
    try:
        with open('login_data.json', 'r') as f:
            result = json.load(f)
            return result['username'] + ' - ' + result['password']
    except Exception as e:
        print(f"加载登录状态失败: {e}")

总结

本项目通过HTML表单实现用户登录逻辑,结合JavaScript验证用户名和密码的字符限制,最终在本地文件中保存登录状态。Python实现了数据读写功能,确保代码可运行且易于维护。该实现符合中级开发者的要求,支持前后端交互,无需依赖外部框架。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注