Python,Flask,MySQL-检查数据库中是否存在电子邮件

时间:2018-10-28 14:17:49

标签: python mysql sql flask

我对SQL还是很陌生,但我在学校项目中需要它。我正在尝试制作一个需要帐户的(python)网络应用程序。我可以将数据放入SQL数据库,但是现在我需要某种方法来验证数据库中是否已经存在电子邮件(通过html表单输入)。可能是有史以来最简单的查询,但我对如何开始一无所知。 :(

很抱歉,如果这是一个重复的问题,但是我找不到任何可以满足我需要的东西。

2 个答案:

答案 0 :(得分:1)

如果您在项目中使用SQLAlchemy:

@app.route("/check_email")
def check_email():
    # get email from you form data
    email = request.form.get("email")

    # check if someone already register with the email
    user = Users.query.filter_by(email=email).first()
    if not user:
        # the email doesnt exist
        pass
    else:
        # the email exists
        pass

Users.query.filter_by(email=email).first()等于SQL:

SELECT * from users where email="EMAIL_FROM_FORM_DATA"

如果您使用的是pymsql(或类似的名称):

import pymsql

@app.route("/check_email")
def check_email():
    # get email from you form data
    email = request.form.get("email")

    conn = connect(host='localhost',port=3306,user='',password='',database='essentials')
    cs1 = conn.cursor()
    params = [email]
    # cursor return affected rows
    count = cs1.execute('select * from users where email=%s', params)  # prevent SqlInject

    if count == 0:
        # count 0 email
    else:
        # the email exists
        # and if you want to fetch the user's info
        user_info = cs1.fetchall()  # the user_info should be a tuple


    # close the connection
    cs1.close()
    conn.close() 

答案 1 :(得分:0)

我能够通过简单地使用来解决我的问题 INSERT IGNORE及之后的checking if it was ignored with the primary key

谢谢大家的帮助!