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

求高手回答:python数据库连接对象和连接的关系?

发布网友 发布时间:2022-04-28 15:55

我来回答

4个回答

懂视网 时间:2022-05-02 17:18

  安装pymysql:python3 -m pip install pymysql,查看安装后的版本python3 -m pip show pymysql.

  技术分享图片

   安装pymssql:python3 -m pip install pymssql,查看安装后的版本python3 -m pip show pymssql. 

  技术分享图片

   由于缺少—mssql,参考解决办法http://blog.csdn.net/HHTNAN/article/details/77931782,我们用第二种解决办法.whl的下载地址为https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql,装命令为python3 -m pip

install pymssql-2.1.3-cp36-cp36m-win32.whl.查看安装的版本python3 -m pip show pymssql.

  技术分享图片

 数据库连接操作流程和函数介绍:

  任何数据库无法避免的就是连接操作,这里mysql和sqlserver的连接传的参数略微有些不同,pymssql.connect(self.host,self.user,self.pwd,self.db,charset="utf8"),sqlserver传的是4个参数,host为ip加端口,用户名,密码,库名,字符编码;而mysql的pymysql.connect(host=self.host,port=self.port,user=self.user,passwd=self.pwd,db=self.db,charset="utf8")其它都一样,host为IP加上一个独立的端口传参。

   查询语句,通过连接后返回的对象conn的cursor的方法创建游标对象cur,调用cur的execute的方法执行sql语句,用fetchone查询单条语句,fetchall查询多条数据。之后调用conn的close方法关闭连接。

   非查询语句,通过连接后返回的对象conn的cursor的方法创建游标对象cur,调用cur的execute的方法执行sql语句,然后conn调用commit的方法去提交数据,然后调用close的方法关闭数据库连接。
创建数据库对象和测试例子:
#-*-coding:utf-8-*-s
#mysql和sqlserver的库
import pymysql,pymssql

class Database:
 def __init__(self,*db):
 if len(db)==5:
  #mysql数据库
  self.host=db[0]
  self.port=db[1]
  self.user=db[2]
  self.pwd=db[3]
  self.db=db[4]
 else:
  #sqlserver数据库
  self.host=db[0]
  self.port=None
  self.user=db[1]
  self.pwd=db[2]
  self.db=db[3]
 def _Getconnect(self):
 if not self.db:
  raise NameError+"没有设置数据库信息"
 if (self.port==None):
  self.conn=pymssql.connect(self.host,self.user,self.pwd,self.db,charset="utf8")
 else:
  self.conn = pymysql.connect(host=self.host,port=self.port,user=self.user,passwd=self.pwd,db=self.db,charset="utf8")
 cur=self.conn.cursor()
 if not cur:
  raise "数据库连接不上"
 else:
  return cur
 #查询sql
 def ExecQuery(self,sql):
 cur=self._Getconnect()
 cur.execute(sql)
 relist=cur.fetchall()
 self.conn.close()
 return relist
 #非查询的sql
 def ExecNoQuery(self,sql):
 cur=self._Getconnect()
 cur.execute(sql)
 self.conn.commit()
 self.conn.close()

  测试代码:

#sqlserver数据库信息
SqlServerhost="192.168.100.85:12033"
SqlServeruser="AKTEST"
SqlServerpwd="btjf123!"
SqlServerdb="AK_Data_jccs"
#Mysql数据库信息
Mysqlhost="192.168.100.211"
Mysqlport=3307
Mysqluser="akmysql"
Mysqlpwd="mysql123"
Mysqldb="bt_hyaline"

database=Database(SqlServerhost,SqlServeruser,SqlServerpwd,SqlServerdb)
#sqlserver查询
sql="select top 1 * from t_code order by fid desc"
relist=database.ExecQuery(sql)
print (relist)
#sqlserver非查询
sql="update t_code set ftypes=1 where fid=83902"
database.ExecNoQuery(sql)

database=Database(Mysqlhost,Mysqlport,Mysqluser,Mysqlpwd,Mysqldb)
#Mysql查询
sql="select * from t_Bank where fid = 2"
relist=database.ExecQuery(sql)
print (relist)
#Mysql非查询
sql="update t_Bank set FShortName=2 where fid = 2"
database.ExecNoQuery(sql)

  

 

  
  

 

python的数据库对象

标签:order   line   字符   mysq   code   ldb   list   解决   sql数据库   

热心网友 时间:2022-05-02 14:26

肯定是共用一个连接。

这和你要连接的数据库相关,本地的可能是文件句柄,远程的可能是套接字,也可能是管道。

显然不是,看看下面的内容你应该理解了。


 Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象
  一个很好的例子:
  import copy
  a = [1, 2, 3, 4, ['a', 'b']] #原始对象
  b = a #赋值,传对象的引用
  c = copy.copy(a) #对象拷贝,浅拷贝
  d = copy.deepcopy(a) #对象拷贝,深拷贝
  a.append(5) #修改对象a
  a[4].append('c') #修改对象a中的['a', 'b']数组对象
  print 'a = ', a
  print 'b = ', b
  print 'c = ', c
  print 'd = ', d
  输出结果:
  a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
  b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
  c = [1, 2, 3, 4, ['a', 'b', 'c']]
  d = [1, 2, 3, 4, ['a', 'b']]

热心网友 时间:2022-05-02 15:44

如果con.close(),那么con_copy就不是的了。

热心网友 时间:2022-05-02 17:19

python数据库连接对象和连接的关系
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
泰勒公式有哪些常见形式? 空调室内风机怎样工作 什么是县级以上医院 关于聚金宝 买白银问题 平安银行个人贵金属交易业务有哪些? 网易云音乐为什么歌这么少? 公路边种的有什么花 高速路上常用的绿化花卉有那些? 公路绿化用什么花 我一键开核后顺利进入WIN7 系统,可是一开网站就重启是怎么回事,我开6... 梦见去男朋友家吃饭时,我的饭碗被雷劈了? 介绍几本好看的小说 穿越 都市 玄幻 都可以 要完结的 都市玄幻小说完本 酸甜扣肉的做法家庭版 现代都市玄幻小说 甜酸扣肉怎么做?特别是汁怎么调。 如何评价 2021 上海高考数学?今年题目难度如何? 甜酸扣肉怎么做 梦见去男朋友家在他家里吃饭,他一直看着我笑我没在意他,他爸妈感觉很不高心,这是什么意思? 怎么焖酸甜扣肉好吃 梦见自己搞对象去男方家吃饭都是人在等着等着我? 酸甜扣肉的做法,酸甜扣肉怎么做好吃,酸甜扣肉 求文艺一点的话做QQ签名 梦见自己盛了一碗饭去和男朋友家吃饭,男朋友自己也盛了一碗饭,是什么意思? 甜酸扣肉怎么做好吃,甜酸扣肉的家常做法 有没有什么适合当个性签名的句子,要霸气,忧桑点的 梦见在男朋友家饭桌吃饭没看到,走时突然出现留自己住夜? 有什么好的话可以当QQ个性签名用? 用于qq个性签名的经典的话。 梦见去男朋友家吃饭是什么意思? 如何评价 2021 上海高考数学?今年题目难度如何?有哪些变化? 求本已完结的现代都市玄幻小说 如何评价 2021 北京高考数学?今年的题目难度如何?有哪些变化? 扣肉怎么做肥而不腻? 如何评价2021浙江高考数学?今年题目难度如何?有哪些变化? 怎样做出酒席上好吃的梅菜扣肉? 今年高考数学难吗? 正宗的香芋扣肉应该怎么做? 今年高考数学题难吗? 今年江苏高考数学有点难?出题人比葛军还要狠吗? 对于今年高考数学题你们有什么看法? 高考数学大题6大题型是什么? 今年高考数学特别难吗? 洗车用哪种高压清洗机好? 什么牌子的高压水泵洗车水枪质量好? 家用高压洗车机什么牌子好? 发朋友圈,说出来心里能好受点怎么配图?男女关系,求图片发朋友圈 男人朋友圈发一个微笑图什么意思? 高压洗车机 哪个牌子的好 男生朋友圈分享这张图片想表达什么?如下