当前位置:   article > 正文

python(二)mac环境(macOS10.12.6)下的python3.6使用mysql_python适用于10.12.6

python适用于10.12.6
首先到mysql官网下载最新版mysql :

mysql-5.7.19-macos10.12-x86_64.dmg

双击一直下一步,中间过程中记录下密码(类似这样的一串:4nf6WXPB#!nj),用于后面更改


进入系统偏好设置启动mysql





vim ~/.bash_profile加入path




source ~/.bash_profile


mysql -uroot -p测试登陆


更改密码


显示数据库


与python3交互,pip mysql



写一个封装的helper类,用于crud

TGMysqlHelper.py
  1. # coding:utf-8
  2. import pymysql
  3. class TGMysqlHelper:
  4. def __init__(self, host, port, db, user, password, charset='utf8'):
  5. self.host = host
  6. self.port = port
  7. self.db = db
  8. self.user = user
  9. self.passwd = password
  10. self.charset = charset
  11. def connect(self):
  12. self.conn = pymysql.connect(host=self.host, port=self.port, db=self.db, user=self.user, passwd=self.passwd, charset=self.charset)
  13. self.cursor = self.conn.cursor()
  14. def close(self):
  15. self.cursor.close()
  16. self.conn.close()
  17. def get_one(self, sql, params=()):
  18. result = None
  19. try:
  20. self.connect()
  21. self.cursor.execute(sql, params)
  22. result = self.cursor.fetchone()
  23. self.close()
  24. except Exception as e:
  25. print(e.message)
  26. return result
  27. def get_all(self, sql, params=()):
  28. list = ()
  29. try:
  30. self.connect()
  31. self.cursor.execute(sql, params)
  32. list = self.cursor.fetchall()
  33. self.close()
  34. except Exception as e:
  35. print(e.message)
  36. return list
  37. def insert(self, sql, params=()):
  38. return self.__edit(sql, params)
  39. def update(self, sql, params=()):
  40. return self.__edit(sql, params)
  41. def delete(self, sql, params=()):
  42. return self.__edit(sql, params)
  43. def execute(self, sql, params=()):
  44. return self.__edit(sql, params)
  45. def __edit(self, sql, params):
  46. count = 0
  47. try:
  48. self.connect()
  49. count = self.cursor.execute(sql, params)
  50. self.conn.commit()
  51. self.close()
  52. except Exception as e:
  53. print(e.message)
  54. return count

测试代码

  1. # coding:utf-8
  2. from TGMysqlHelper import *
  3. def createDB():
  4. sql = 'drop database testDB; create database testDB charset=utf8; use testDB; create table students(id int auto_increment primary key,name varchar(10) not null, gender tinyint default 0);'
  5. mysqlHelper = TGMysqlHelper('localhost', 3306, 'sys', 'root', 'password')
  6. count = mysqlHelper.execute(sql)
  7. if count == 1:
  8. print('create ok')
  9. else:
  10. print('create error')
  11. def add():
  12. sql = 'insert into students(name,gender) values(%s,%s)'
  13. sname = input("请输入用户名:")
  14. gender = input("请输入性别(1为男,0为女):")
  15. params = [sname, int(gender)]
  16. helper = TGMysqlHelper('localhost', 3306, 'testDB', 'root', 'password')
  17. count = helper.insert(sql, params)
  18. if count == 1:
  19. print('add ok')
  20. else:
  21. print('add error')
  22. def one():
  23. sql = 'select name,gender from students order by id desc'
  24. helper = TGMysqlHelper('localhost', 3306, 'testDB', 'root', 'password')
  25. one = helper.get_one(sql)
  26. print(one)
  27. def all():
  28. sql = 'select * from students order by id desc'
  29. helper = TGMysqlHelper('localhost', 3306, 'testDB', 'root', 'password')
  30. all = helper.get_all(sql)
  31. print(all)
  32. def main():
  33. createDB()
  34. add()
  35. # one()
  36. all()
  37. if __name__ == "__main__":
  38. main()

用户登陆时的密码测试
  1. # coding:utf-8
  2. from hashlib import sha1
  3. from TGMysqlHelper import *
  4. def createDB():
  5. sql = 'drop database testDB; \
  6. create database testDB charset=utf8; \
  7. use testDB; \
  8. create table userinfos( \
  9. id int primary key auto_increment, \
  10. uname varchar(20), \
  11. upwd char(40), \
  12. isdelete bit default 0); \
  13. insert into userinfos values(0,"targetcloud","40bd001563085fc35165329ea1ff5c5ecbdbbeef",0);'
  14. mysqlHelper = TGMysqlHelper('localhost', 3306, 'sys', 'root', 'password')
  15. count = mysqlHelper.execute(sql)
  16. if count == 1:
  17. print('create ok')
  18. else:
  19. print('create error')
  20. def main():
  21. sname = input("请输入用户名:")
  22. spwd = input("请输入密码:")
  23. s1 = sha1()
  24. s1.update(spwd.encode("utf8"))
  25. spwdSha1 = s1.hexdigest()
  26. sql = "select upwd from userinfos where uname=%s"
  27. params = [sname]
  28. sqlhelper = TGMysqlHelper('localhost', 3306, 'testDB', 'root', 'password')
  29. userinfo = sqlhelper.get_one(sql, params)
  30. if userinfo == None:
  31. print('用户名错误')
  32. elif userinfo[0] == spwdSha1:
  33. print('登录成功')
  34. else:
  35. print('密码错误')
  36. if __name__ == "__main__":
  37. createDB()
  38. main()

运行效果




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/982285
推荐阅读
相关标签
  

闽ICP备14008679号