1、MD5加密
不能直接对字符串加密,要先把字符串转换为bytes类型
import hashlib m=hashlib.md5() password='liujia test' print(password.encode()) #把字符串转换成bytes类型 m.update(password.encode()) #不能直接对字符串加密,要先把字符串转换成bytes类型 print(m.hexdigest())
定义函数,做加密
def my_md5(str): new_str=str.encode()#把字符串转换成bytes类型 #new_str=b'%s'%str #把字符串转换成bytes类型 m=hashlib.md5() #实例化MD5对象 m.update(new_str) #加密 return m.hexdigest() #获取结果返回 print(my_md5('jsjs'))
2、其他加密方式
import hashlib m=hashlib.sha224() #各种加密方式,用法一样,只是加密出来的密文不一样 m.update('adasdjks'.encode()) print(m.hexdigest())
3、操作数据库
数据库操作步骤:
1)连接数据库 账号,密码,IP,端口号,数据库
2)建立游标
3)执行sql
4)获取结果
5)关闭游标
6)连接关闭
查询数据库数据:
import pymysql coon=pymysql.connect( host='xxx.xx.x.x',user='jxz',password='123456', port=3306,db='jxz',charset='utf8' #port必须是int类型,charset必须写utf8 ) cur=coon.cursor() #建立游标 cur.execute('select * from stu;') res=cur.fetchall()#获取所有返回的结果 print(res) cur.close() #关闭游标 coon.close() #关闭连接
插入数据:
import pymysql coon=pymysql.connect( host='xxxx',user='jxz',password='123456', port=3306,db='jxz',charset='utf8' #port必须是int类型,charset必须写utf8 ) cur=coon.cursor() #建立游标 cur.execute('insert into stu(id,name,sex) values(12,"liujia","测试")') coon.commit() res=cur.fetchall()#获取所有返回的结果 print(res) cur.close() #关闭游标 coon.close() #关闭连接
4、函数定义数据库操作
def my_db(host,user,password,db,sql,port=3306,charset='utf8'): import pymysql coon=pymysql.connect(user=user, host=host, paaaword=password, db=db, charset=charset, port=port ) cur=coon.cursor() cur.execute(sql) if sql.strip()[:6].upper()=='SELECT': res=cur.fetchall() else: coon.commit() res='ok' cur.close() coon.close() return res
5、fetchall() 与fetchone()用法与区别
fetchall() 获取到sql执行的全部结果,把数据库里的每一行放到一个list里面
[['1','2','3']]
fetchone 获取到这个sql执行的一条结果,它返回就只是一条数据
如果sql语句执行的结果是多条,就用fetchall
如果确定执行结果是一条,就用fetchone
6、建立游标指定游标类型,结果为字典类型
def my_db(sql,port=3306,charset='utf8'): import pymysql host,user,password,db = '118.24.3.40', 'jxz','123456', 'jxz' coon=pymysql.connect(user=user, host=host, password=password, db=db, charset=charset, port=port) cur=coon.cursor(cursor=pymysql.cursors.DictCursor) #建立游标的时候指定了游标类型,返回的就是一个字典 cur.execute(sql) if sql.strip()[:6].upper()=='SELECT': res=cur.fetchall() print(res) else: coon.commit() res='ok' cur.close() coon.close() return res
my_db('select * from stu')
7、description()用法
获取数据库表字典的具体描述,如数据库表stu中有三个字段,想知道这三个字段的具体描述,如字段类型,长度等
8、取数据库表头字段
def my_db(sql,port=3306,charset='utf8'): import pymysql host,user,password,db = 'xxx', 'jxz','123456', 'jxz' coon=pymysql.connect(user=user, host=host, password=password, db=db, charset=charset, port=port) cur=coon.cursor(cursor=pymysql.cursors.DictCursor) #建立游标的时候指定了游标类型,返回的就是一个字典 cur.execute(sql) if sql.strip()[:6].upper()=='SELECT': fileds=[filed[0] for filed in cur.description] #相当于上面三句 print(fileds) else: coon.commit() res='ok' cur.close() coon.close() return res
my_db('select * from stu')