注册功能mysql_打通了MySQL的登录注册功能

import pymysql

class MyDBHandle:

def __init__(self):

self.conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='root',

passwd='123456',

db='day49',

charset='utf8',

autocommit=True

)

self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)

def _db_handle_select(self, *args):

sql = 'select * from user where username=%s'

res = self.cursor.execute(sql, args)

if not res:

return {}

else:

return self.cursor.fetchone()

def _db_handle_insert(self, *args):

sql = 'insert into user(username, password) values(%s, %s)'

self.cursor.execute(sql, args)

def login_interface(self, name, pwd):

user_dict = self._db_handle_select(name)

if not user_dict:

return False, '用户名不存在'

else:

if pwd != user_dict.get('password'):

return False, '用户名或密码错误'

return True, '登录成功'

def register_interface(self, name, pwd):

user_dict = self._db_handle_select(name)

if user_dict:

return False, '用户名已经存在'

self._db_handle_insert(name, pwd)

return True, '注册成功'

class MyTest:

def __init__(self, db_handle_obj):

self.db_handle = db_handle_obj

def run(self):

while 1:

cmd_list = [('登录', 'login'), ('注册', 'register')]

for index, item in enumerate(cmd_list):

print(index, item[0])

cmd = input('请输入功能编号:').strip()

if not cmd.isdigit() or int(cmd) not in range(len(cmd_list)):

continue

cmd_func = cmd_list[int(cmd)][1]

if hasattr(self, cmd_func):

func = getattr(self, cmd_func)

func()

def login(self):

while 1:

username = input('username>>:').strip()

password = input('password>>:').strip()

flag, msg = self.db_handle.login_interface(username, password)

print(msg)

if flag: break

def register(self):

while 1:

username = input('username>>:').strip()

password = input('password>>:').strip()

re_pwd = input('re_pwd>>:').strip()

if re_pwd != password:

print('两次密码输入不一致')

continue

flag, msg = self.db_handle.register_interface(username, password)

print(msg)

if flag: break

if __name__ == '__main__':

test = MyTest(MyDBHandle())

test.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值