版权声明:一个苦逼初学者的原创小博客。 https://blog.csdn.net/SenZendao/article/details/82228031
好,今晚我申正道打了鸡血,疯狂总结,主要不想一个数据库拖太久时间了,今天好像都第三天了,后面的东西还很多,这样只会把知识越压越多,所以让我们干起来了吧,这篇主要就说一下mysql数据库与python的交互,代码的封装和使用。
直接把我写的源代码放上来吧,太长了不好截图。
import pymysql
import hashlib
#创建一个类
class MysqlHelper():
#初始化属性
def __init__(self, host,database, user, password,port=3306,charset='utf8'):
self.host=host
self.port=port
self.db=database
self.user=user
self.passwd=password
self.charset=charset
#链接的方法
def connect(self):
self.conn=pymysql.connect(host=self.host, port=self.port, db=self.db, user=self.user, password=self.passwd, charset=self.charset)
self.cursor=self.conn.cursor()
#关闭的方法
def close(self):
self.cursor.close()
self.conn.close()
#查询一个的方法
def select_one(self,sql,params=[]):
result=None
try:
self.connect()
self.cursor.execute(sql, params)
result = self.cursor.fetchone()
self.close()
except Exception as e:
print(e)
return result
#查询所有的方法
def select_all(self,sql,params=[]):
list=()
try:
self.connect()
self.cursor.execute(sql,params)
list=self.cursor.fetchall()
self.close()
except Exception as e:
print(e)
return list
def __edit(self,sql,params):
count=0
try:
self.connect()
count=self.cursor.execute(sql,params)
self.conn.commit()
self.close()
except Exception as e:
print(e)
return count
#增加的方法
def insert(self, sql, params=[]):
return self.__edit(sql, params)
#修改的方法
def update(self, sql, params=[]):
return self.__edit(sql, params)
#删除的方法
def delete(self, sql, params=[]):
return self.__edit(sql, params)
#md5加密的方法
def my_md5(self, pwd):
my_md5 = hashlib.md5()
my_md5.update(pwd.encode('utf-8'))
return my_md5.hexdigest()
其实就是使用面向的对象的思想,将代码封装起来,使用的时候直接导入,进行调用,这样就避免了我们每次都要打很多代码,这样提高了代码的简洁性,而且提高了代码的可拓展性。下面我们就写个代码来使用一下。
from fengzhuang import MysqlHelper
import hashlib
def register():
name = input("用户名>")
pwd = input("密码>")
helper = MysqlHelper(host="localhost", database="zhengdao", user="root", password="915210")
ret = helper.insert("insert into t_user(name,pwd) values(%s,%s)",[name,helper.my_md5(pwd)])
if ret>0:
print("成功")
else:
print("失败")
def login():
name = input("用户名>")
pwd = input("密码>")
helper = MysqlHelper(host="localhost", database="zhengdao", user="root", password="915210")
ret = helper.select_one("select count(*) from t_user where name=%s and pwd=%s",[name,helper.my_md5(pwd)])
if ret[0]>0:
print("成功")
else:
print("失败")
def main():
while True:
choice = input("1、注册1 2、登录 ")
if choice == "1":
register()
elif choice == "2":
login()
if __name__ == '__main__':
main()