问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysqldb可以异步执行吗

发布网友 发布时间:2022-04-07 20:08

我来回答

3个回答

懂视网 时间:2022-04-08 00:30

 

yosemite系统用brew安装mysql可以参考: http://segmentfault.com/a/1190000000438233

安装mysqldb: pip install mysql-python

简单例子

import MySQLdb as mdb
import sys

try:
 con = mdb.connect(‘localhost‘, ‘root‘, ‘password‘, ‘dbname‘)

 cur = con.cursor()
 cur.execute("select version()")
 ver = cur.fetchone()

except mdb.Error, e:
 print "error %d: %s" % (e.args[0], e.args[1])
 sys.exit(1)

finally:
 if con:
 con.close()

数据库的操作很容易出现异常,最好用exception来处理,使用完后关闭连接con.close()

使用with可以简化代码,而且提供异常处理

con = mdb.connect(...)

with con:
 cur = con.cursor()
 cur.execute("DROP TABLE IF EXISTS Writers")
 cur.execute("CREATE TABLE Writers(Id INT PRIMARY KEY AUTO_INCREMENT,   Name VARCHAR(25))")
 cur.execute("INSERT INTO Writers(Name) VALUES(‘Jack London‘)")
 cur.execute("INSERT INTO Writers(Name) VALUES(‘Honore de Balzac‘)")
 cur.execute("INSERT INTO Writers(Name) VALUES(‘Lion Feuchtwanger‘)")
 cur.execute("INSERT INTO Writers(Name) VALUES(‘Emile Zola‘)")
 cur.execute("INSERT INTO Writers(Name) VALUES(‘Truman Capote‘)")

查询数据

with con:
 cur = con.cursor()
 cur.execute("select * from Writers")
 rows = cur.fetchall()
 
 for row in rows:
 print row

with con:
 cur = con.cursor()
 cur.execute("select * from Writers")
 for i in range(cur.rowcount):
 row = cur.fetchone()
 print row[0], row[1]

上面是两种查询的方式,一种fetchall()获取整个表格,一种每次fetchone(), cur.fetchall()返回的rows是一个tuple,并且每个元素row也是一个tuple,里面有表格的一行数据

dict cursor

如果希望以字典的形式返回结果,可以用dict cursor

con = mdb.connect(...)

with con:
 cur = con.cursor(mdb.cursors.DictCursor)
 cur.execute("select * from Writers")

 rows = cur.fetchall()
 for row in rows:
 print row["id"], row["name"]

获取表格列名字

with con:
 cur = con.cursor()
 cur.execute("select * from Writers")

 desc = cur.description

print "%s %3s" % (desc[0][0], desc[1][0]) 

输出((‘Id‘, 3, 1, 11, 11, 0, 0), (‘Name‘, 253, 17, 75, 75, 0, 1))

print desc[0][0], desc[1][0]就可以得到列名

插入,读取图片

mysql提供了插入图片数据的方法,图片是二进制数据,mysql中提供一种特殊的数据类型来存放二进制数据,BLOB (binary large obj),包括TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB

def read_images():
 fin = open("togglebg.png")
 img = fin.read()
 return img

with con:
 cur = con.cursor()
 cur.execute("create table images(id int primary key, data mediumblob)")

 data = read_images()
 cur.execute("insert into images values(1, %s)", (data, ))
def read_images():
 fin = open("togglebg.png")
 img = fin.read()
 return img

def writeImages(data):
 fout = open(‘hello.jpg‘, ‘wb‘)
 with fout:
 fout.write(data)

with con:
 cur = con.cursor()
 cur.execute("select data from images where id = 1")
 data = cur.fetchone()[0]
 writeImages(data)

参考:http://zetcode.com/db/mysqlpython/

MySQLdb使用

标签:

热心网友 时间:2022-04-07 21:38

Asynchronous Replication Automatic failover

其原理是在一条异步复制通道上配置多个可用复制源,当某个复制源不可用时(宕机、复制链路中断),且 slave 的 IO 线程尝试重连无效,自动根据权重选择新的源继续同步。

热心网友 时间:2022-04-07 22:56

连接数据库的代码如下

import mysql.connectorconfig={'host':'127.0.0.1',#默认127.0.0.1 'user':'root', 'password':'123456', 'port':3306 ,#默认即为3306 'database':'test', 'charset':'utf8'#默认即为utf8 }try: cnn=mysql.connector.connect(**config)except mysql.connector.Error as e: print('connect fails!{}'.format(e))

连接方法上和MySQLdb模块略有不同。MySQLdb使用的是=号,这里使用的是 : 号。
2、创建表

下面我们根据上面新建的一个数据库连接创建一张名为student的表:

sql_create_table='CREATE TABLE `student`(`id` int(10) NOT NULL AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL,`age` int(3) DEFAULT NULL,PRIMARY KEY (`id`))ENGINE=MyISAM DEFAULT CHARSET=utf8'cursor=cnn.cursor()try: cursor.execute(sql_create_table)except mysql.connector.Error as e: print('create table orange fails!{}'.format(e))

3、插入数据

插入数据的语法上和MySQLdb上基本上是一样的:

cursor=cnn.cursor()try: '第一种:直接字符串插入方式' sql_insert1="insert into student (name, age) values ('orange', 20)" cursor.execute(sql_insert1) '第二种:元组连接插入方式' sql_insert2="insert into student (name, age) values (%s, %s)" #此处的%s为占位符,而不是格式化字符串,所以age用%s data=('shiki',25) cursor.execute(sql_insert2,data) '第三种:字典连接插入方式' sql_insert3="insert into student (name, age) values (%(name)s, %(age)s)" data={'name':'mumu','age':30} cursor.execute(sql_insert3,data) #如果数据库引擎为Innodb,执行完成后需执行cnn.commit()进行事务提交except mysql.connector.Error as e: print('insert datas error!{}'.format(e))finally: cursor.close() cnn.close()

同样,MySQL Connector也支持多次插入,同样其使用的也是cursor.executemany,示例如下:

stmt='insert into student (name, age) values (%s,%s)'data=[ ('Lucy',21), ('Tom',22), ('Lily',21)]cursor.executemany(stmt,data)

4、查询操作

cursor=cnn.cursor()try: sql_query='select id,name from student where age > %s' cursor.execute(sql_query,(21,)) for id,name in cursor: print ('%s's age is older than 25,and her/his id is %d'%(name,id))except mysql.connector.Error as e: print('query error!{}'.format(e))finally: cursor.close() cnn.close()

5、删除操作

cursor=cnn.cursor()try: sql_delete='delete from student where name = %(name)s and age < %(age)s' data={'name':'orange','age':24} cursor.execute(sql_delete,data)except mysql.connector.Error as e: print('delete error!{}'.format(e))finally: cursor.close() cnn.close()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美克拉营销系统,谈谈一般美容院顾客到店率低的原因 ...怎样找下家,怎样使一家美容院有客流,有竞争力!请教各位大侠!_百度... 美容院怎么引流,有没有最新美容院拓客的方法推荐? 放置奇兵 放置奇兵光暗英雄排行是什么样的? 放置奇兵 放置奇兵英雄强度排行什么样? 放置奇兵 放置奇兵时空英雄哪个好? 淘宝直播能挂淘客链接吗?淘宝直播万能链接怎么做? 关于魔兽世界法师的一点小问题 勤哲可视化快速开发平台,觉得怎么样? 风机的主要结构是什么意思 幼儿园种植区看讲评稿子 梦见和家人一起旅游 幼儿园户外种植区要求 梦见自己和家人出去旅游遇见道士给自己算命,说自己能升官 科学区有趣的名字 问:做梦梦见自己和家人出来旅游,然后就看见好多人围着一个泉水要下去喝说这个泉水很甜,然后我看见妈妈 幼儿园大班种植区的设置创意是什么 幼儿园种植活动小组组名 ...和老婆出去旅游,和老婆一家人出去旅游,是什么意思啊? 联想s520主题商店那四个是免费的 幼儿种植园起什么名称较好 求有什么办法能免费使vivox7主题商店里收费的主题,拜谢 oppoa5主题商店免费的主题有哪些? 为什么我的Oppo主题全都是要钱的,别人的都是免费的呢。这是怎么回事? 华为没有自带视频编辑软件吗? 有什么好用的视频编辑软件? 联想电脑自带的office怎么安装? 华为哪一款电脑适合剪视频 我的是联想笔记本如何安装office办公软件?? 电脑14s不支持花瓣剪辑吗 花瓣剪辑搜索不到本地音乐 火车需要取票吗还是刷身份证就可以 2020年买9月份的K字头车票还用取票吗? 坐火车不用取票吗 想问下预算8~9000,主要用ansys,matlab,数值模拟可以买什么电脑? 手机没信号有wifi怎么打电话 南宁冬天需要穿羽绒服吗? 我是工程力学专业数值方向,想了解一下笔记本是不是不适合用来数值模拟?是不是台式机更合适?配置如何? 想配个做数值模拟的电脑,运行abaqus软件,麻烦给个主机的配置,不含显示器,预算7000元? 怎样帮同事发讣告- 问一问 2500元电脑配置 我12月1日要到南宁出差,大概会待到1月20日。不知道这段时间在南宁应该穿些什么衣服? 土木工程电脑配置要求是什么? 梦见去串亲戚遇到爷爷什么意思? 电影《龙兄虎第》里成龙,关之琳,刘嘉玲合唱的那首歌名字叫??? 高手进,电脑配置的兼容性 求计算模拟,分子动力学模拟等所需的计算机配置 用wifi怎么免费打电话 电影《龙兄虎弟》里面,成龙,谭咏麟和两个女的,唱的那首歌是什么? 从9月开始算,南宁一般穿短袖穿到什么时候,明年又什么时候开始穿短袖呢? 如果委托朋友发讣告落款就要写朋友的名子这样合适吗?