Python连接数据库——DB-API的使用流程

Python连接数据库——DB-API的使用流程

2023年7月10日发(作者:)

Python连接数据库——DB-API的使⽤流程⼀、中的BD-API1、出现背景在没有DB-API之前,接⼝程序混乱。具体的就是说,由于最底层⽤的数据库技术不同,所以在应⽤程序层就要针对特定的数据库进⾏特定的编码,如果要改变⼀个版本所使⽤的底层数据库,那么之前编写的应⽤程序中关于数据库的代码也要进⾏相应的改变。2、详解python DB-:python访问数据库的统⼀接⼝规范。

这⾥有⼀个约定:程序员使⽤python与任何底层数据库交互时都使⽤DB-API,⽽不论这个数据库技术具体是什么,这么做是因为,利⽤驱动程序,程序员⽆需了解与数据库具体API交互的底层细节,因为DB-API在代码与驱动程序之间提供了⼀个抽象层,这⾥的想法是:通过使⽤DB-API编程,可以根据需要替换掉底层数据库技术,⽽⽆须丢弃现有的代码。3、python DB-API包含的内容4、使⽤python DB-API访问数据库的流程下⾯分步骤详解:定义连接属性

连接到MySQL服务器时需要4部分信息: 运⾏MySQL服务器的计算机(称为主机)的IP地址/主机名;要使⽤的⽤户ID;与⽤户ID关联的⼝令;这⼀⽤户ID想要交互的数据库名。 123456dbconfig = { "host": "127.0.0.1", "user": "vsearch", "password": "vseacrh", "database": vsearchlogDB}导⼊数据库驱动程序1import tor建⽴与MySQL服务器的⼀个连接1conn = t(**dbconfig)(**)记法告诉connect函数⽤⼀个变量提供了参数字典,如果看到这种记法,connect函数会把这个字典展开为4个单独的参数,然后在connect函数中使⽤这些参数来建⽴连接。打开⼀个游标

要向数据库发送SQL命令(通过刚才打开的连接)以及从数据库接收结果,我们需要⼀个游标,可以把游标理解成数据库中⽂件的句柄。

创建游标很简单:只需要调⽤cursor⽅法,每个连接对象都有这个⽅法。

前⾯我们所做的这些操作,在⽆论使⽤什么数据库时,都是通⽤的。只是连接属性可能不同⽽已。完成SQL查询

可以利⽤cursor变量向MySQL发送SQL查询,以及获取MySQL处理查询⽣成的结果,我认为的是这个跟ajax中的request请求对象很像。12_SQL = """show tables"""e(_SQL);⼀般⽤三重双引号来编写要发送给数据库服务器的SQL,之所以使⽤三重双引号,是因为三重双引号可以暂定不启⽤python解释器中的“⾏末即语句结束的规则”。

执⾏e()命令时,这个SQL查询会被发送到MySQL的服务器,它会执⾏这个查询(假设正确),不过结果并不会⽴即显⽰,必须要请求结果。 这⾥要特别注意点是:fetchall()⽅法,它返回的是客户端缓冲区现在还没有被影响的记录。并且返回的数据类型是⼀个元组列表。当使⽤insert操作时,由于写数据库是⼀个开销很⼤的操作,所以数据库系统会缓存insert,然后再⼀次性应⽤全部的insert。这带来的问题就是,刚刚插⼊的数据可能访问不到。但是可以通过事务提交(())来强制插⼊数据到数据库,这样既可解决访问不到的问题。

关闭游标和连接

数据提交到数据库表中后,要进⾏清理,关闭游标和连接。

()

()

这是因为数据库系统是⼀组有限的资源,不关闭会导致资源严重浪费,其它⽤户⽆法访问。下⾯是最近做的⼀个项⽬中关于数据库连接的源码:8dbconfig = {"host": "127.0.0.1", "user": "vsearch", "password": "vsearch", "database": "vsearchlogDB",}import torconn = t(**dbconfig)cursor = ()_SQL = """insert into log (phrase, letters, ip, browser_string, results) values (%s, %s, %s, %s, %s)"""e(_SQL, ("afeng", "jingjing", "127.0.0.1", "opera", "{'x', 'y'}"))()_SQL = """select * from log"""e(_SQL)for row in ll(): print(row)()()声明这个笔记主要是根据head first python以及慕课⽹的Python操作MySQL数据库课程总结⽽来。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688930939a184738.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信