python mysql api_MySQL学习笔记(5)—— Python 操作 MySQL

MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA, PHP 和 Python。 在这些语言中,Mysql在PHP的web开发中是应用最广泛,因此关于PHP操作 MySQL 的教程已经多到不需要笔者继续赘述了。在本学习笔记中,计划使用 Python对 MySQL 数据库进行操作。主要是因为笔者的工科背景,Python 广泛应用于各种数据处理领域。本章更侧重于链接方式的搭建和功能的概述,具体使用方法会在后续 MySQL 操作中进行关联性介绍。

Python 数据库接口和API

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库。下面简单列出几种常用数据库,你可以访问Python数据库接口及API查看详细的支持数据库列表。

mSQL

MySQL

Microsoft SQL Server

Oracle

DB-API是一个规范,它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。因此,不同的数据库你需要下载不同的DB API模块,例如需要访问Oracle数据库和Mysql数据,就需要下载Oracle和MySQL数据库模块。Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

安装 MySQLdb

为了用DB-API编写MySQL脚本,必须确保已经安装了 MySQL 和 Python DB-API接口包。其中前面章节已经完成了 MySQL 的安装和配置,这里将介绍一种 Python DB-API —— MySQLdb。MySQLdb 是用于Python链接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 建立。

检验是否已安装 MySQLdb

采用交互式或脚本的方法运行以下 Python 代码(命名为mysql_test.py),检验系统内是否已经安装 MySQLdb。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

如果执行后的输出结果如下所示,意味着你没有安装 MySQLdb 模块:

Traceback (most recent call last):

File "test.py", line 3, in

import MySQLdb

ImportError: No module named MySQLdb

编译安装 MySQLdb

如果尚未安装 MySQLdb,则请访问 http://sourceforge.net/projects/mysql-python ,(Linux平台可以访问:https://pypi.python.org/pypi/MySQL-python )从这里可选择适合您的平台的安装包,分为预编译的二进制文件和源代码安装包。

如果您选择二进制文件发行版本的话,安装过程基本安装提示即可完成。如果从源代码进行安装的话,则需要切换到MySQLdb发行版本的顶级目录,并键入下列命令进行解压缩:

tar -xvf MySQL-python-1.2.4b4.tar.gz

cd MySQL-python-1.2.4b4

阅读文件夹下面的README和INSTALL文件即可明白安装方法和相关需求,首先配置site.cfg文件中mysql_config的路径。输入以下代码确认是否已经存在mysql_config文件:

which mysql_config

若存在,则显示文件路径(例如,/usr/bin/mysql_config);若不存在则需要先安装相关包:

sudo apt-get install libmysqld-dev

修改site.cfg文件中配置路径,先解除mysql_config=XXX前的注释,然后更新路径如下:

mysql_config=/usr/bin/mysql_config

配置完成后,剩下的安装都交给 Python 吧:

python setup.py build

sudo python setup.py install

Tips: 安装过程若出现错误,可能是版本不对应,也可能是缺少python-dev依赖包。

如果一切顺利,那么再次运行上述检验代码 mysql_test.py 就不会报错了,一切就绪了。

Python 链接 MySQL 数据库

连接数据库前,请先确认以下事项:

您已经阅读并完成第四章的学习,在 mysql 数据库中创建了新用户 guest

连接数据库 mysql 使用的用户名为 "guest" ,密码为 "guest123",也可以自己设定或者直接使用root用户名及其密码

已经完成并检验了 Python MySQLdb 模块的安装和引用

Python DB-API的使用流程如下:

引入 API 模块(import MySQLdb)

获取与数据库的连接(MySQLdb.connect)

执行SQL语句和存储过程(cursor.execute)

关闭数据库连接(db.close())

创建以下 Python 示例代码(可以在上述mysql_test.py文件中添加修改)。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# open & link MySQL Server

db = MySQLdb.connect("localhost","guest","guest123","mysql" )

# get the cursor of operation

cursor = db.cursor()

# execute SQL operation

cursor.execute("SELECT user FROM user WHERE user = 'guest'")

# capture one data with fetchone()

data = cursor.fetchone()

# display the captured results

print "MySQL new username: %s " % data

# close Database

db.close()

运行 Python代码并得到输出如下:

$ python mysql_test.py

MySQL new username: guest

至此,已经完成了使用 Python 来操作 MySQL 数据库!从上述代码可见,Python操作数据库的方法还是很简洁的,与打开一个文件进行读写操作类似。其中,对数据库内的操作还是通过 SQL 语言完成的,只是放到了接口函数 cursor.execute() 内而已。

小结

本章介绍采用Python操作 MySQL 服务器,但这里只是个开始,介绍了操作的流程和思路,更多的还是需要了解 SQL 语言。后续章节将逐步介绍 MySQL 中的操作语法,并与 Python 代码相结合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值