python连接MySQL数据库实现(用户登录测试功能)pymysql

pymysql

PyMySQL 是一个纯 Python 实现的 MySQL 客户端操作库,支持事务、存取过程、批量执行,实现增删改查等

# 注册
def register(cursor):
    username = input('请输入注册的用户名').strip()
    password = input('请输入您的密码').strip()
    # 验证用户名是否已经存在
    sql = 'select * from egg where name=%s'
    # 执行sql语句,筛选在拼接
    cursor.execute(sql, (username,))
    # 获取所有返回结果
    res = cursor.fetchall()
    # not无数据情况(创建)
    if not res:
        # 插入数据
        sql1 = 'insert into egg(name,password) values(%s,%s)'
        # execute方法筛选再拼接,执行sql语句
        cursor.execute(sql1,(username, password))
        print('用户:%s注册成功' % username)
    else:
        print('用户名已存在')
# 登录
def login(cursor):
    username = input('请输入您用户名').strip()
    password = input('请输入您的密码').strip()
    # 先获取是否存在用户名数据
    sql = 'select * from userinfo where name=%s'
    # 执行sql语句,筛选在拼接
    cursor.execute(sql,(username,))
    # 获取所有返回结果
    res = cursor.fetchall()  # 结果是列表套字典
    # 判断密码是否存在
    if res:
        # 效验密码(索引0 获取真正的列表里面的字典)
        real_dict = res[0]
        # 校验密码
        if password == real_dict.get('password'):
            print('登录成功')
        else:
            print('密码错误')
    else:
        print('用户名不存在')


# 连接数据库
def get_conn():
    # 调任模块
    import pymysql
    # 创建链接(链接到数据库)
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        password='123',
        database='db_01',
        charset='utf8',
        autocommit=True  # 涉及到增删改 自动二次确认
    )
    # 生成一个游标对象(操作数据库)
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 让数据自动组织成字典
    return cursor


func_dic = {'1': register, '2': login}

# 执行
while True:
    print("""
    1.注册功能
    2.登录功能
    """)
    # 每一次循环都能获取对象(游标)
    cursor = get_conn()

    choice = input('请输入功能编号>>>:').strip()
    if choice in func_dic:
        # 获取用户输入选择的功能编号
        func_name = func_dic.get(choice)
        # 调用函数
        func_name(cursor)
    else:
        print('暂时没有当前功能编号')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值