Python操作MySQL数据库实现注册和登录
python操作数据库的基本步骤:
首先打开local,,创建qqq数据库。
新建查询,输入sql语句创建sh_users表
1 create table sh_users(
2 id int unsigned primary key auto_increment not null,
3 username varchar(20) not null,
4 password char(40) not null,
5 is_delete bit default 0
6 )
刷新表页面,输入sql语句尝试插入
1 insert into sh_users (username, password) values ('r速22t', 'f74e2')
接下来就可以写代码了!
1 from hashlib import *
2 import pymysql
3
4
5 # 获取数据库连接对象
6 def mysql_conn():
7 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='111111', db='qqq')
8 return conn
9
10
11 def register():
12 try:
13 # 获取数据库连接对象
14 conn = mysql_conn()
15 # 获取数据库操作cursor(游标)
16 cur = conn.cursor()
17 # 编写查询的sql语句
18 select_sql = f'select password from sh_users where username = "{u_name}"'
19 # 执行sql语句
20 cur.execute(select_sql)
21 # 获取执行结果 fetch_one(),判断结果
22 res = cur.fetchone()
23 # 如果res返回None 表示没有找到数据,不存在可注册,存在注册失败
24 if res is not None:
25 print('用户名已存在,注册失败', res)
26 else:
27 print('该用户名可以使用')
28 # 注册-> 插入数据,手动commit
29 insert_sql = 'insert into sh_users (username, password) values (%s,%s)'
30 insert_params = [u_name, sha_pwd]
31 cur.execute(insert_sql, insert_params)
32 conn.commit()
33 print('注册成功', u_name)
34 # 关闭连接
35 cur.close()
36 conn.close()
37 except Exception as e:
38 print(e)
39
40
41 def login():
42 try:
43 conn = mysql_conn()
44 cur = conn.cursor()
45 select_sql = f'select password from sh_users where username = "{u_name}"'
46 cur.execute(select_sql)
47 res = cur.fetchone()
48 if res is None:
49 # 登录:根据用户名没有获取密码
50 print('用户名错误,登录失败')
51 else:
52 # res有值,用户名正确,判断密码正确与否
53 m_pwd = res[0]
54 print(m_pwd, '===========================')
55 if m_pwd == sha_pwd:
56 print('登录成功', u_name)
57 else:
58 print('密码错误,登录失败')
59 # 关闭连接
60 cur.close()
61 conn.close()
62 except Exception as e:
63 print(e)
64
65
66 if __name__ == '__main__':
67 u_name = input('请输入用户名')
68 u_pwd = input('请输入密码')
69
70 # sha1加密
71 s1 = sha1()
72 s1.update(u_pwd.encode())
73 sha_pwd = s1.hexdigest()
74 print(sha_pwd)
75
76 # register()
77 login()
这里用了两种字符串格式化操作,sql语句里“=”号后的引号要注意
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理