我的mysql是用python连接的,我在python中写了一个调用数据库并检查用户密码的函数,此时又该怎么在html页面弹出警告框提示密码错误?
时间: 2024-02-19 20:57:50 浏览: 67
要在 HTML 页面中弹出警告框来提示密码错误,可以使用 JavaScript 来实现。在 Python 中编写检查密码的函数后,可以将该函数嵌入到 Flask 等 Python Web 框架中,以便在 HTML 页面中调用该函数。
以下是一个简单的 Flask 应用程序示例,演示如何在 HTML 页面中调用 Python 中的检查密码函数,并在密码错误时弹出警告框:
Python 代码:
```python
from flask import Flask, request, jsonify
import mysql.connector
app = Flask(__name__)
# 连接 MySQL 数据库
cnx = mysql.connector.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database'
)
# 检查密码是否正确
def check_password(username, password):
cursor = cnx.cursor()
query = 'SELECT * FROM users WHERE username=%s AND password=%s'
cursor.execute(query, (username, password))
result = cursor.fetchone()
cursor.close()
if result is None:
return False
else:
return True
# 处理客户端请求
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
if check_password(username, password):
return '登录成功'
else:
return '密码错误', 401
if __name__ == '__main__':
app.run()
```
在上述代码中,我们首先创建了一个 Flask 应用程序,并连接了 MySQL 数据库。然后,我们定义了一个 `check_password()` 函数,用于检查用户输入的密码是否正确。在处理客户端请求时,我们从请求中获取用户名和密码,并调用 `check_password()` 函数来检查密码是否正确。如果密码正确,则返回 "登录成功";否则,返回 "密码错误" 和 401 状态码。
HTML 代码:
```html
<form onsubmit="checkPassword(); return false;">
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password">
<br>
<input type="submit" value="登录">
</form>
<script>
function checkPassword() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
fetch('/login', {
method: 'POST',
body: new FormData(document.querySelector('form'))
})
.then(response => {
if (response.ok) {
alert('登录成功');
} else {
alert('密码错误');
}
})
.catch(error => {
console.error(error);
alert('服务器错误');
});
}
</script>
```
在上述 HTML 代码中,我们首先定义了一个表单,用于输入用户名和密码。当用户点击 "登录" 按钮时,会调用 `checkPassword()` 函数。该函数首先从输入框中获取用户名和密码,然后使用 `fetch()` 方法向服务器发送 POST 请求,并将用户名和密码作为 FormData 提交到服务器。当服务器返回响应时,如果状态码为 200,则说明密码正确,弹出 "登录成功" 的警告框;否则,说明密码错误或服务器出错,弹出 "密码错误" 或 "服务器错误" 的警告框。
阅读全文