昨天的学会了吗?如果你告诉我,你没看怎么使用sql语句,用了图形化,那你今天绝对学不会
目录:
0 准备材料
1 安装库
2 主要部分:怎么使用
0 准备材料
python
mysql
1 安装库
凡是干啥事情,都离不来库,没有库,啥也干不了
今天这个库叫pymysql,pip应该都会吧
pip install pymysql
安装好后,打开python测试:
import pymysql
2 主要部分:怎么使用
(如果是用虚拟机的,那你这程序就是在虚拟机中运行,如果你用的是自己的电脑,那就可以方便一点,在自己的电脑直接试)
(1)链接数据库
要用数据库,那肯定是要连接啊
# 导入pymysql库import pymysql# 连接数据库sql = pymysql.connect(host="localhost",# 服务器IP/域名user="root",# 用户名password="123456",# 密码database="test"# 数据库)# 断开数据库sql.close()
服务器的IP就是对应昨天navicat的主机名,用户名密码就是连接数据库的用户名密码和昨天一样,数据库就是需要操作的数据库,相当于昨天的这个(如果不知道,就把第一个数据库的名字填进去):
没报错,特别好
没报错,我们就成功了!!
(记得最后要使用sql.close()来断开连接哦)
(2)运行sql代码,并获取返回结果
假如,我们需要获取一个用户的密码,那该怎么办呢
还是昨天的users表来举例(阴魂不散的users)
# 导入pymysql库import pymysql# 连接数据库sql = pymysql.connect(host="localhost",# 服务器IP/域名user="root",# 用户名password="123456",# 密码database="test"# 数据库)# 创建一个cursorcursor = sql.cursor()# 用execute来执行sqlcursor.execute("select * from users")# 获取返回数据data = cursor.fetchall()# 输出数据print(data)# 断开数据库sql.close()
大家一起猜猜,输出出来的是啥?
如果你说是["10000", "aaa", "123abc"]那么恭喜你!猜对了一半,其实,输出出来的是(('10000', 'aaa', '123abc'),)那我们要比对密码,肯定要先把用户名揪出来这时for循环登场了!!大概思路:
done = None # 完成情况,默认为Nonefor x, y, z in data:# x是id# y是用户名# z是密码if y == 输入的用户名:# 比对密码:if z == 输入的密码:done = True # 登录成功,设置done为Trueprint("登录成功!")else:done = False # 登录失败,设置done为Falseprint("登陆失败!")# done还是None# 说明没有找到这个用户名if done == None:print("登陆失败!用户未找到!")
写成完整代码就是:
# 导入pymysql库import pymysql# 连接数据库sql = pymysql.connect(host="localhost",# 服务器IP/域名user="root",# 用户名password="123456",# 密码database="test"# 数据库)# 创建一个cursorcursor = sql.cursor()# 用execute来执行sqlcursor.execute("select * from users")# 获取返回数据data = cursor.fetchall()# 输入账户密码username = input("请输入要登录的用户名>>> ")password = input("请输入该用户登录密码>>> ")# 比对密码done = Nonefor x, y, z in data:if y == username:if z == password:print("密码正确")done = Trueelse:print("密码错误")done = Falseif done == None:print("账户不存在!")# 断开数据库sql.close()
效果很好!
今天到这里就1000字结束了!
记得点个赞和在看哦!
有钱的,麻烦点一下“喜欢作者”哦!