使用Python连接MySQL实现简单的登录和注册功能
使用python 连接mysql数据实现简单的登录,注册功能。
在本篇博客中,我们将学习如何使用Python连接MySQL数据库,并实现基本的登录和注册功能。我们将使用Python的pymysql库来连接MySQL数据库,并编写函数来实现用户的注册和登录功能。
首先,我们需要创建一个数据库连接函数connectdb
,该函数接收一个SQL查询作为参数,然后建立与MySQL数据库的连接,并执行SQL查询。首先默认你已创建了user表。
创建数据库连接:
#导入需要的包
import re # 正则表达式
from re import search, split, fullmatch
import pymysql
def connectdb(sql):
# 建立Mysql数据库连接
db = pymysql.connect(
host='localhost', # 数据库地址 可远程,可本地
port=3306, # 数据库端口号
user='root', # 用户名
passwd='123456', # 密码
db='xxx数据库', # 需要连接的数据库
charset='utf8' # 配置编码
)
cursor = db.cursor()
sqls = sql # 查询历史数据
cursor.execute(sqls) # 执行sql
results = cursor.fetchall() # 获取sql的每条数据
db.commit()
cursor.close() # 关闭游标
db.close() # 关闭数据库连接
return results
接下来,我们将编写注册功能register()
,该函数将会对用户输入的用户名、电话号码和电子邮箱进行校验,并将校验结果存储在数据库中。如果输入的信息有效且未被注册过,则会将用户信息插入到数据库中,并返回注册成功的消息。
实现注册功能:
# 实现注册功能
def register():
userId = 'root'
password = '123456'
gender = '0' #0:男,1:女
phone = '13012345678'
email = 'lisi_1234@qq.org'
if fullmatch(r'[a-zA-Z\d_]{1,10}', userId): #校验一下用户名
print('用户名有效')
names = []
u_sql = "select name from user "
username = connectdb(u_sql)
for u in username:
names.append(u[0])
if userId in names:
print('该名称已被注册,请重新输入!')
date = {
'msg': '该名称已被注册,请重新输入!'
}
return date
else:
if fullmatch(r'1[3-9]\d{9}', phone): #校验一下号码以1开头的11位数字
print('电话号码有效')
phones = []
p_sql = "select phone from user "
userphone = connectdb(p_sql)
for p in userphone:
phones.append(p[0])
if phone in phones:
print('该号码已被注册,请重新输入!')
date = {
'msg': '该号码已被注册,请重新输入!'
}
return date
else:
#校验一下邮箱以(cn/org/com)结尾
if re.match(
r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(com|org|cn)$',
email):
print('电子邮箱有效')
emails = []
esql = "select email from user "
useremail = connectdb(esql)
for e in useremail:
emails.append(e[0])
if phone in emails:
print('该邮箱已被注册,请重新输入!')
date = {
'msg': '该邮箱已被注册,请重新输入!'
}
return date
else:
sql = "INSERT INTO user (name, gender,phone,email,password) VALUES ('{}','{}','{}','{}','{}')".format(
userId, gender, phone, email, password)
connectdb(sql)
print('注册成功')
date = {
'msg': '注册成功!'
}
return date
else:
print('电子邮箱无效')
date = {
'msg': '输入的电子邮箱无效,请重新输入!'
}
return date
else:
print('电话号码无效')
date = {
'msg': '输入的电话号码无效,请重新输入!'
}
return date
else:
print('用户名无效')
date = {
'msg': '输入的用户名无效,请重新输入!'
}
return date
然后,我们将编写登录功能login()
,该函数首先会查询数据库中是否存在输入的用户名,如果存在则会校验密码是否正确,并返回相应的登录状态消息。
实现登录功能:
#实现登录功能
def login():
userId = 'root'
password = '123456'
sql = 'select name,password from user where name = "{}"'.format(userId)
up = connectdb(sql)
if len(up) != 0:
user_name = up[0][0]
user_pwd = up[0][1]
else:
print('暂无该用户,请前往注册')
return
if userId == user_name and password == user_pwd:
date = {
'code': 200,
'msg': '登录成功!'
}
print('登录成功')
return date
elif userId != user_name and password == user_pwd:
date = {
'code': 403,
'msg': '用户名不正确,请重新输入!'
}
print('用户名不正确')
return date
elif userId == user_name and password != user_pwd:
date = {
'code': 403,
'msg': '密码不正确,请重新输入!'
}
print('密码不正确')
return date
else:
date = {
'code': 404,
'msg': '用户名和密码不正确,请重新输入!'
}
print('用户名和密码不正确,请重新输入!')
return date
在这个过程中,我们将使用Python的正则表达式来校验用户输入的信息,并利用pymysql库来连接MySQL数据库进行数据的存取。
通过以上步骤,我们将学习到如何使用Python连接MySQL数据库,并实现基本的登录和注册功能。同时,我们也会学习到如何在Python中进行数据库操作,以及如何使用正则表达式对用户输入的信息进行校验。
希望这篇博客能够帮助大家更好地理解Python连接MySQL数据库,并实现基本的用户登录和注册功能。谢谢阅读!上述代码均是完整代码,欢迎指正,一起学习!
作者:m0_69966833