使用Python操作MySQL的小技巧
1、获取插入数据的主键id
importpymysql database=pymysql.connect( host="127.0.0.1",port=3306,user="root",password="root",database="test" ) cursor=database.cursor() foriinrange(5): cursor.execute('insertintotest(name)values("test")') print(database.insert_id()) database.commit() cursor.close() database.close()
通过db.insert_id()方法可以获取插入数据的主键id,注意一定要在commit之前获取,否则返回0。
2、创建时间、更新时间
DEFAULTCURRENT_TIMESTAMP --表示当插入数据的时候,该字段默认值为当前时间 ONUPDATECURRENT_TIMESTAMP --表示每次更新这条数据的时候,该字段都会更新成当前时间
这两个操作是mysql数据库本身在维护,可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护。
CREATETABLE`test`( `create_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间', `update_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT'更新时间' )ENGINE=InnoDBDEFAULTCHARSET=utf8;
3、Python插入数据库时字符串中含有单引号或双引号报错
可以使用pymysql.escape_string()转换
iftype(str_content)isstr: str_content=pymysql.escape_string(str_content)
4、获取单个表的字段名和信息的方法
importMySQLdbasmdb importsys #获取数据库的链接对象 con=mdb.connect('localhost','root','root','test') withcon: #获取普通的查询cursor cur=con.cursor() cur.execute("SELECT*FROMWriters") rows=cur.fetchall() #获取连接对象的描述信息 desc=cur.description print'cur.description:',desc #打印表头,就是字段名字 print"%s%3s"%(desc[0][0],desc[1][0]) forrowinrows: #打印结果 print"%2s%3s"%row
5、从数据库中把图片读出来
importMySQLdbasmdb importsys try: #连接mysql,获取连接的对象 conn=mdb.connect('localhost','root','root','test'); cursor=conn.cursor() #执行查询该图片字段的SQL cursor.execute("SELECTDataFROMImagesLIMIT1") #使用二进制写文件的方法,打开一个图片文件,若不存在则自动创建 fout=open('image.png','wb') #直接将数据如文件 fout.write(cursor.fetchone()[0]) #关闭写入的文件 fout.close() #释放查询数据的资源 cursor.close() conn.close() exceptIOError,e: #捕获IO的异常,主要是文件写入会发生错误 print"Error%d:%s"%(e.args[0],e.args[1]) sys.exit(1)
以上就是使用Python操作MySQL的小技巧的详细内容,更多关于python操作MySQL的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。