python实现用户登录注册界面_实现前后端登录注册界面

本文详述了使用node.js后端配合前端实现登录注册界面的方法,包括前端的表单验证、jQuery处理,以及后端的邮箱格式、密码一致性、邮箱唯一性的验证。此外,还介绍了登录成功后如何设置cookie并进行页面跳转。
摘要由CSDN通过智能技术生成

本篇博客讲解如何实现前后端的简单登录注册界面,后端代码由node.js实现,主要阐述登录注册时网页工作原理。感兴趣的同学可以参考一下。

注册界面

功能:

判断用户是否输入邮箱,密码,验证密码(前端判断)

判断用户的邮箱格式是否正确(后端判断)

判断输入的密码和验证密码是否一致(前端判断)

判断注册的邮箱是否唯一(后端判断)

1.html部分:

注册

邮箱

密码

确认密码

2.js部分(由jquery实现):

监听表单的submit事件,将用户输入的信息存储到hash表中,如果用户输入不合法则出现错误提示信息

$('#RegisterForm').on('submit',(e) => {

e.preventDefault();

let hash = {};

let arg = ['email','password','password_confirm'];

arg.forEach((name) => {

let value = $('#RegisterForm').find(`[name= ${name}]`).val();

hash[name] = value;

})

$('#RegisterForm').find('.error').each((index,span) => {

$(span).text(''); //初始的错误提示为空

})

if(hash['email'] === ''){

$('#RegisterForm').find('[name = "email"]').siblings('.error').text('请输入邮箱');

return

}

if(hash['password'] === ''){

$('#RegisterForm').find('[name = "password"]').siblings('.error').text('请输入密码');

return

}

if(hash['password_confirm'] === ''){

$('#RegisterForm').find('[name = "password_confirm"]').siblings('.error').text('请输入密码');

return

}

if(hash['password'] !== hash['password_confirm'] ){

$('#RegisterForm').find('[name = "password_confirm&

由于前后端分离的方式可以有多种实现方式,具体实现方法也与后端框架和前端框架有关,因此下面提供的是一种基于Flask和Vue的前后端分离的论坛登录注册示例代码。 后端代码(使用Flask框架): ```python from flask import Flask, request, jsonify from flask_cors import CORS from werkzeug.security import generate_password_hash, check_password_hash app = Flask(__name__) CORS(app) # 允许跨域访问 users = [] # 存储用户信息 @app.route('/register', methods=['POST']) def register(): data = request.get_json() username = data.get('username') password = data.get('password') for user in users: if user['username'] == username: return jsonify({'message': '用户名已存在'}), 400 hashed_password = generate_password_hash(password) # 对密码进行哈希 user = {'username': username, 'password': hashed_password} users.append(user) return jsonify({'message': '注册成功'}) @app.route('/login', methods=['POST']) def login(): data = request.get_json() username = data.get('username') password = data.get('password') for user in users: if user['username'] == username and check_password_hash(user['password'], password): return jsonify({'message': '登录成功'}) return jsonify({'message': '用户名或密码错误'}), 401 if __name__ == '__main__': app.run() ``` 前端代码(使用Vue框架): ```html <template> <div> <h2>注册</h2> <form @submit.prevent="register"> <div> <label>用户名:</label> <input type="text" v-model="username" required> </div> <div> <label>密码:</label> <input type="password" v-model="password" required> </div> <button type="submit">注册</button> </form> <h2>登录</h2> <form @submit.prevent="login"> <div> <label>用户名:</label> <input type="text" v-model="username" required> </div> <div> <label>密码:</label> <input type="password" v-model="password" required> </div> <button type="submit">登录</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '' } }, methods: { register() { fetch('http://localhost:5000/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: this.username, password: this.password }) }) .then(response => response.json()) .then(data => { alert(data.message) }) .catch(error => { console.error(error) }) }, login() { fetch('http://localhost:5000/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: this.username, password: this.password }) }) .then(response => { if (response.status === 401) { throw new Error('用户名或密码错误') } else { return response.json() } }) .then(data => { alert(data.message) // 登录成功后的操作 }) .catch(error => { alert(error.message) }) } } } </script> ``` 在这个示例代码中,后端提供了/register和/login两个接口,分别用于用户注册和用户登录。前端使用Vue框架编写了一个简单的登录注册页面,通过fetch函数向后端发送请求,并根据后端返回的数据进行相应操作。 需要注意的是,本示例使用了Flask的默认配置,因此仅适用于开发环境,生产环境需要进行相应的配置(例如使用HTTPS协议)。此外,为了简化示例,本文没有进行身份验证和授权等安全措施,实际项目中需要根据情况进行相应的安全设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值