Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证用户是否已存在_Python_Python 3.x - Fatal编程技术网

Python 验证用户是否已存在

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

我在PythonFlask中进行登录,注册新用户时,我希望在数据库中搜索。如果用户已经注册,代码应该发送一条消息,说明该用户已经存在

这是我的注册码:

@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
,如果您只想发送消息而不重定向。