点击忘记密码按钮后跳转界面输入用户名和id匹配数据库,成功则要求用户输入新密码和和确认按钮,失败则提示id错误用python应该怎么写
时间: 2024-03-17 10:42:41 浏览: 100
oracle数据库中忘记用户名密码了怎么办
5星 · 资源好评率100%
这个功能的实现需要用到Web框架,比如Flask或Django。以下是一个简单的Flask应用程序,可以实现你所需的功能:
```python
from flask import Flask, render_template, request, redirect, url_for
import sqlite3
app = Flask(__name__)
# 连接数据库
conn = sqlite3.connect('users.db')
c = conn.cursor()
# 渲染重置密码页面
@app.route('/reset-password', methods=['GET'])
def reset_password():
return render_template('reset_password.html')
# 处理表单提交
@app.route('/reset-password', methods=['POST'])
def reset_password_post():
# 获取表单数据
username = request.form['username']
user_id = request.form['id']
new_password = request.form['new_password']
confirm_password = request.form['confirm_password']
# 查询用户信息
c.execute('SELECT * FROM users WHERE username=? AND id=?', (username, user_id))
user = c.fetchone()
# 验证用户信息是否正确
if user:
# 验证密码是否匹配
if new_password == confirm_password:
# 更新密码
c.execute('UPDATE users SET password=? WHERE username=? AND id=?', (new_password, username, user_id))
conn.commit()
return redirect(url_for('password_reset_success'))
else:
return render_template('reset_password.html', error='密码不一致')
else:
return render_template('reset_password.html', error='用户名或ID错误')
# 渲染密码重置成功页面
@app.route('/reset-password/success')
def password_reset_success():
return '密码重置成功!'
if __name__ == '__main__':
app.run(debug=True)
```
在这个应用程序中,我们定义了一个`/reset-password`路由,用于渲染密码重置页面和处理表单提交。在处理表单提交时,我们首先获取表单数据,然后查询数据库中是否存在匹配的用户信息。如果存在,我们再验证新密码和确认密码是否一致,如果一致,我们就更新密码并跳转到密码重置成功页面。如果密码不一致,我们就返回密码重置页面,并显示错误信息。如果用户信息不存在,我们也返回密码重置页面,并显示错误信息。
需要注意的是,这个应用程序中使用了Flask模板引擎来渲染HTML页面,同时使用了SQLite作为数据库。你可以根据实际情况修改这个应用程序,并将其部署到服务器上。
阅读全文