Python 验证用户是否已存在
我在PythonFlask中进行登录,注册新用户时,我希望在数据库中搜索。如果用户已经注册,代码应该发送一条消息,说明该用户已经存在 这是我的注册码:Python 验证用户是否已存在,python,python-3.x,Python,Python 3.x,我在PythonFlask中进行登录,注册新用户时,我希望在数据库中搜索。如果用户已经注册,代码应该发送一条消息,说明该用户已经存在 这是我的注册码: @app.route('/register', methods=["GET", "POST"]) def register(): if request.method == 'GET': return render_template("register.html") else: name = requ
@app.route('/register', methods=["GET", "POST"])
def register():
if request.method == 'GET':
return render_template("register.html")
else:
name = request.form['name']
email = request.form['email']
code = request.form['code']
password = request.form['password'].encode('utf-8')
hash_password = bcrypt.hashpw(password, bcrypt.gensalt())
cur = mysql.connection.cursor()
cur.execute("INSERT INTO users (name, email, code, password) VALUES (%s,%s,%s,%s)",(name,email,code,hash_password,))
mysql.connection.commit()
session['name'] = request.form['name']
session['email'] = request.form['email']
session['code'] = request.form['code']
return redirect(url_for('home'))
您将如何执行此操作?在使用
插入到
SQL查询之前,您可以使用从SQL查询中选择来检查用户是否存在
cur.execute("SELECT 1 FROM users WHERE name=%s AND email=%s AND code=%s", (name,email,code))
如果其中一个字段(名称、电子邮件或代码)是主键,则您甚至不需要检查其他值,只需使用主键字段即可简化查询,例如
cur.execute("SELECT 1 FROM users WHERE code=%s", (code,))
但是,如果响应包含一行,则用户存在;如果响应不包含任何行,则用户不存在
如果cur.rowcount==1:
return redirect(url_for('user_ready_exists'))#如果您有一个页面,则发送一个响应重定向到一个页面,说明该用户已经存在
如果您想了解如何编写SQL查询(看起来是这样),那么我建议您首先阅读SQL教程,例如。Google这些关键字:python flask custom response
,如果您只想发送消息而不重定向。