Python访问MySQL数据库

更新时间:2023-08-05 21:41:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Python访问MySQL数据库

DATABASEANDINFORMATIONMANAGEMENT

-I_

"1——

IIII●—_—●■_■_■■_■■■■——■■—■———皇—■■■■-■■奠—皇昌昌篁!喜皇暑鲁墨鼍E詈皇暑暑皇詈暑詈詈詈鼍

数据库与信息管理

Python访问MySQL数据库

郑岚

(南京晓庄学院,南京210000)

摘妻:讲解了应用Python如何访问MySQL数据库。首先介绍了Python、MySQL,然后讲解MySQL数据库访问模块,并通过一个实例来说明应用该模块来访问MySQL数据库,最后总结了用Python访问MySQL数据库的优点。关键词:Python;MySQL;Mysqldb;数据库

Python

to

Access

MySQL

Database

ZBXN'GLm

(NanjingXiaozhuanguniversity,Nanjing210000)

Abstract:Thisarticledescribeshow

u∞pythontoaccesstheMySQLdatabase.Firstintroducedthepython.MySQL,and

thenexplainedtheMySQLdatabaseaccessmodule.andthrough蚰exampletoillustratehowtou8ethemoduletoacce髓theMySQLdatabase,atlastconcludedtheadvantagesofusingpythonaccesstoMySQLdatabase.

to

Keywords:Python;MySQL;Mysqldb;Database

Python

PoeketPC.

1.1概述

Python的创始人为Guido

van

“)解释性

Rossum,它是一种简单易学,

P灿on语言写的程序不需要编译成二进制代码,可以直接

从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用

功能强大的编程语言。它有高效率的高层数据结构,简单而有效

地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是—个理想的脚本语言,特别适用于快速的应用程序开发。1.2特点

的机器语言并运行。事实上,由于不再需要担心如何编译程序、

如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于只需要把Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得Python程序更加易于移植。

(5)面向对象

(1)简单,易学

Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在凑英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。

它使你能够专注于解决问题而不是去搞明白语言本身。Python极其容易上手,其语法极其简单。

(2)免费、开源

b,thon既支持面向过程的编程也支持面向对象的编程。在

面向过程的语言中,程序是由过程或仅仅是可重用代码的函数

构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相

比,Python以一种非常强大又简单的方式实现面向对象编程。

(6)可扩展性

Python是FLOSS(自由,开放源码软件)之一。简单地说,用户可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。nosS是基于一个团体分享知识的概念。这是为什么Python如此优秀的

如果需要一段关键代码运行得更快或者希望某些算法不公开。可以把部分程序用c或C++编写,然后在Python程序

中使用它们。

(7)可嵌入性

原因之——它是由一群希望看到一个更加优秀的Python的

人创造并经常改进着的。

(3)可移植性

由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果小心地避免使用依赖于系统的特性。那么所有Python程序无需修改就可以在下述任何平台上面运行。

可以把Python嵌入o『C++程序,从而向程序用户提供脚本功能。

(8)丰富的库

Python标准库确实很庞大。它可以帮助处理各种工作,

包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、n甲、电子邮件、XML、XML—RPc、

HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和

这些平台包括Linux、Windows、胁eBsD、Macintosh、

Solaris、0S12、Amiga、AROS、AS/400、

BeOS、OS/390、z,

其他与系统有关的操作。记住,只要安装了Python,所有这

些功能都是可用的,这被称作Python的“功能齐全”理念。

OS,PalmOS,QNX,VMS,Psion,AcornRISCWorks、PlayStation、Sharp

OS,Vx—

Zaurus、WindowsCE甚至还有

除了标准库以外,还有许多其他高质量的库,如忡

Python、Twisted和Python图像库等等。

本文收稿Et期:2010-01-08

万方数据 

一59—

Python访问MySQL数据库

电脑编程技巧与维护

1.3程序

按照惯例,学习语言的第一个程序是hefio,wodd。在

Python中编写一个hero,world程序非常简单,如下:

hello.PY

#!/usr/bin/envpythonprint”Hello,world!’’

执行pythonheno.PY,即在屏幕打印Hello,woddl

MySQL

MySQL是一个小型关系型数据库管理系统,开发者为瑞

典MySQLAB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由

于其体积小、速度快、总体拥有成本低,尤其是开放源码这

一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

下面来总结一下它的特点:

(1)使用C和C++编写,并使用了多种编译器进行测试,

保证源代码的可移植性。

(2)支持AⅨ、FreeBSD、HP—UX、Linux、MacOS、

Novell

Netware、OpenBSD、OS/2Wrap、Solaris、Windows等多

种操作系统。

(3)为多种编程语言提供了API。这些编程语言包括C、

“+、Eiffel、Java、Ped、PHP、Python、Ruby和Tcl等。

(4)支持多线程,充分利用CPU资源。

(5)优化的SQL查询算法,有效地提高查询速度。

(6)既能够作为一个单独的应用程序应用在客户端服务

器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shifi_JIS等都可以用作数据表名和数据列名。

(7)提供TCP仰、ODBC和JDBC等多种数据库连接途径。(8)提供用于管理、检查、优化数据库操作的管理工具。

(9)可以处理拥有上千万条记录的大型数据库。

MySQLdb

从上面Python和MySQL的介绍可以看出,通过python访

问MySQL数据库能充分发挥Python和MySQL数据库的优势。

而要访问数据库,就必须有相应的数据接口API,MySQLdb就是这样一个开源的数据库访问API,并且是线程安全的。

MySQLdb库有几个重要的对象:(1)ConnectionObjects

连接对象是connect函数返回的,该对象有如下几个关键方法:

1)commit0提交当前事务2)rollback0回滚当前事务

3)cursor0

获得一个游标对象。事实上MySQL并不支

持游标,但是可以通过API来模拟。

(2)CursorObjects

游标(Cursor)是处理数据的一种方法,为了查看或者处

理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,

一60一

万 

方数据它可以指定结果中的任何位置,然后允许用户对指定位置的

数据进行处理。

游标包含两个部分:—个是游标结果集、—个是游标位置。游标结果集:定义该游标得SELECT语句返回的行的集合。游标位置:指向这个结果集某一行的当前指针。

MySQLdb中游标对象最重要的方法是execute方法。execute(sql)

下面通过实例来说明MySQLDB访问MySQL,开发环境:Windowsxp+Python2.5+MySQL5.1o

3.1安装步骤

(1)在www.python.org下载python-2.5.4.msi并安装。

(2)在www.mysqLeom下载mysql-5.0.19-win32.zip并安装。(3)在sourceforge:http://soureeforge.net/projects/mysql-python厂F载MySQLdb,下载解压缩后放到%Python_HOME%K,ib、site-packages目录中,python会自动找到此包。3.2示例程序

(1)由于要访问数据库,首先启动mysql数据库.命令:

mysqld—nt

standalone。然后用下面脚本创建一个数据库rest:

grantallprivilegeson搴. to"rest7@qoealhost7identifiedby"rest’withgrantoption;

grant

allprivilegeson‘. to"rest’@’%7identifiedby"rest7

witIl

grant

option;

flushprivileges;

createdatabaserestdefaultcharactersetutf8;

USe

rest:

(2)编写python源码access.PY

#一+一encoding:utf-8一。一

importOS,sys,string

importMySQLdb#导人MySQLdb模块

#连接数据库

try:

conn=MySQLdb.connect(host=’localhost",user="root",passwd="rainman",db="rest")

exceptException.e:

print

sys.exit0

#获取cursor对象来进行操作

cursor=conn.cursor

襻创建表

sql=”createtable

ifnotexiststestl(namevarchar(128)

primarykey,ageint(4))”cursor.execute(sql)

#插入数据

sql=”insertinto

tcstl(name,age)values(’%s’,%d)”

%(”zhaowei”,23)

try:

cursor.execute(sql)

exceptException.e:

print

sql=”insertintotestl(name,age)values(,%s’,%d)”

%(”张三”,21)

try:

cursor.execute(sql)

except

Exception。e:

Python访问MySQL数据库

DATABASEANDINFORMATIONMANAGEMENT

数据库与信息管理

zhaowei23

print

样插入多条

sql=”insertinto

李四24

testl(name,age)values(%s,%s)”

val=((”李四”,24),(”王五”,25),(”洪六”。26))

try:

洪六26

结语

(1)最大的优点是充分利用Python和MySQL的优点,使

cnrgor.executemany(sql,val)

exceptException.e:

print

得访问数据库变得简单。

corln.commit0;

(2)由于Python和MySQL的跨平台性。数据库访问模块

可以实现0成本跨平台。

(3)MySQL,MySQLdb,Python都是自由软件,可以免费

舟查询出数据

sql=”select+fromtestl”CUrSOr.execute(sql)

alldata=cursor.fetchall

下载,对于中小型企业用户特别合适。

#如果有数据返回,就循环输出,alldata是有个二维的#列表

ifalldata:

forrecinalldata:

参考资料

【1】http://zh.wikipedia.org/wiki/Python.【2】www.mysql.com.【3】www.python.org.

printrec【0】,f∞【1】

cursor.closeconn.close

【4】http://mysql—python.刚rceforge.net/MySQLdb.html.

作者简介

(3)执行结果如下:

Pythonacee¥8.PY

张三21王五25

郑岚,女(1970一),本科,硕士在读,实验师,研究方向:

软件工程。

(上接第33页)

为了方便实现用户界面之间的导航,本系统采用堆栈导航框架来进行。栈的后进先出的结构特点与程序的逻辑非常吻合,在进入到一个界面时,将其压人到栈中,如果想返回到上一个界面,则将栈顶的界面弹出,显示下面的界面。但并不是所有的界面都要压入栈中,比如网络操作的等待界面和提示界面等,所以必须在程序实现中考虑到各种可能出现的情况。以下代码是压栈的具体实现:

//displayable被压入堆栈

privatevoid

企业应用、多媒体应用、移动教育和联网游戏将逐渐成为移

动开发领域关注的热点。该系统基于JavaME和JavaEE技术

在手机上实现了校友录的基本功能,整个系统的可移植性、伸缩性、可维护性、可扩展性、可重用性和可管理性等有了很大的提升,进一步方便手机用户和校友之间的交流。

参考文献

【1】池瑞楠.基于JavaME和JavaEE的移动电子商务系统研

push(Displayabledisplayable)

究叨.微计算机信息,2007,(12).

【2】张璞.基于JavaME和JavaEE的移动电子商务系统研究

【D].西南交通大学,2006.

String1]ame=displayable.getClass0.getName0;

if((!name.endsWith(”WaitForm”))&&(!IlaIm.

endsWith(”Alert”)))

if(name.endsWith(”MainMenu”)){

if(!ui.emp哆()){

ui.removeAllElements0;

【3】杨跃臣,王舒,吴志红.基于JavaME和JavaEE的新农

合系统设计与实现【J】.微计算机信息,2008,(36).

【4】段波.JavaME在移动保险系统中的应用研究【D】.上海

交通大学,2008.

【5】朱全银,章慧.基于JavaME和JavaEE的移动网络游戏

系统们.计算机工程,2008,(16).

【6】奚雪峰.JavaME平台上移动仓储管理系统设计与实现

【J】.微计算机信息,2008,(1).作者简介

刘志成,男(1972),硕士,湖南铁道职业技术学院信息工程系教师,国家创示范建设项目重点专业(软件技术)项目负责人,湖南省第三届普通高等学校教学名师。主要从事数据

ui.push(displayable):

(displayable))

else

if(!ui.empty()&&!ui.peek().equals

//女日果下一个界面是当前界面,则不压栈

lli.push(displayable);

l}}

5结语

随着3G技术的广泛普及和移动设备硬件技术的大力发

展,Java应用程序产生的手机增值服务的影响力将会扩大,

库技术、软件工程和高职软件教育方向的研究。

一61—

万方数据 

Python访问MySQL数据库

Python访问MySQL数据库

作者:作者单位:刊名:英文刊名:年,卷(期):

郑岚, ZHENG Lan

南京晓庄学院,南京,210000

电脑编程技巧与维护

COMPUTER PROGRAMMING SKILLS & MAINTENANCE2010(6)

参考文献(4条)1.查看详情2.查看详情3.查看详情4.查看详情

本文链接:http://www.77cn.com.cn/Periodical_dnbcjqywh201006025.aspx

本文来源:https://www.bwwdw.com/article/ku3m.html

Top