flask、mysql、html实现完整的登录功能
时间: 2023-11-30 22:05:16 浏览: 90
jsp+javaBean+servlet+mysql完整的实现一个登录功能
3星 · 编辑精心推荐
实现登录功能需要前后端配合完成,以下是一个简单的实现步骤:
1. 创建数据库表
首先需要在 MySQL 数据库中创建一个用户表,包含用户名和密码字段。例如:
```mysql
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 编写 Flask 后端代码
接下来,需要编写 Flask 后端代码,用于处理登录请求。以下是一个简单的示例代码:
```python
from flask import Flask, request, jsonify
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'mydb'
mysql = MySQL(app)
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username')
password = request.json.get('password')
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM users WHERE username = %s", [username])
user = cur.fetchone()
cur.close()
if user and password == user['password']:
return jsonify({'success': True})
else:
return jsonify({'success': False, 'message': 'Invalid username or password'})
if __name__ == '__main__':
app.run()
```
这个代码使用 Flask 框架和 Flask-MySQLdb 扩展库来处理登录请求。它从请求体中获取用户名和密码,然后查询 MySQL 数据库中是否存在该用户,如果存在并且密码匹配,则返回登录成功的响应,否则返回登录失败的响应。
3. 编写 HTML 前端代码
最后,需要编写 HTML 前端代码,用于呈现登录界面和发送登录请求。以下是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form>
<label>Username:</label>
<input type="text" name="username"><br>
<label>Password:</label>
<input type="password" name="password"><br>
<button type="button" onclick="login()">Login</button>
</form>
<script>
function login() {
var username = document.getElementsByName('username')[0].value;
var password = document.getElementsByName('password')[0].value;
var xhr = new XMLHttpRequest();
xhr.open('POST', '/login');
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
if (response.success) {
alert('Login success');
} else {
alert(response.message);
}
}
};
xhr.send(JSON.stringify({'username': username, 'password': password}));
}
</script>
</body>
</html>
```
这个代码使用 HTML 表单和 JavaScript 发送登录请求。当用户点击登录按钮时,它会从表单中获取用户名和密码,然后通过 AJAX 发送 POST 请求到 Flask 后端处理。如果响应是成功的,则弹出一个提示框显示登录成功,否则弹出一个提示框显示错误信息。
这就是一个简单的 Flask、MySQL 和 HTML 实现的登录功能。需要注意的是,这个示例代码还没有任何安全性措施,例如防止 SQL 注入攻击和密码加密等。在实际项目中,需要添加更多的安全性措施来保护用户数据的安全。
阅读全文