首页 > 解决方案 > 给出特定输出时如何触发“返回”

问题描述

我正在用 Python 开发一个身份验证脚本。我需要 PyMySQL 来检查用户是否存在,我该怎么做?

我阅读了文档,但没有找到我的问题的答案。

def check():
    connection = pymysql.connect(host='localhost',
                        user='user',
                        password='passwd',
                        db='db',
                        charset='utf8mb4',
                        cursorclass=pymysql.cursors.DictCursor)

    userexist = # PyMySQL check code here
    if userexist=='True':
       return 'good'

标签: pythonpymysql

解决方案


目前尚不清楚您是要检查 pymysql 用户还是数据库中的用户。此代码将解决这两种情况。pymysql 将引发异常:pymysql.err.OperationalError如果用户不存在。因此,您需要尝试一下,除了这样的子句:

def check():
    try:
        connection = pymysql.connect(host='localhost',
                                     user='user',
                                     password='passwd',
                                     db='db',
                                     charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)
    except pymysql.err.OperationalError:
        print('User with entered connection credentials does not exists')
        return False
    try:
        with connection.cursor() as cursor:
            cursor.execute("select...") # Fill with your select statement
            result = cursor.fetchone()
            if result is None:
                connection.close()
                return False
    finally:
        connection.close()
    return 'good'

推荐阅读