python: 数据库编程

sqlite:基于文件的关系数据库,已经包含在python标准库中。

gadfly:用python写的基于文件的关系数据库

mysql:基于服务器的关系数据库

postgresql:基于服务器的关系数据库

python访问数据库的两种方式:

1.  ORM

2.  DB-API

###################################################################

ORM:对象-关系管理器,如果不希望直接嵌入sql可以使用ORM。

ORM模块:

1.  SQLAlchemy

2.  SQLObject

#####################################################################

DB-API:通过嵌入sql来访问数据库。

所有数据库的python接口都要遵循DB-API规范:

数据库的API都是通过connect函数建立连接返回Connection对象:

connect(user, password, host, port,database/db):

connect(“dbname, user,password, host, port”)

通过connect连接的对象的属性:

close()   :关闭数据库连接

commit()   :提交当前事物

rollback()   :取消当前事物

cursor()   :使用这个连接创建并返回一个游标或类游标的对象

errorhandler(cxn, cur,errcls, errval)   :作为已给游标的句柄

游标对象的属性:

arraysize

connection

description

lastrowid

rowcount

callproc(func[, args]):调用一个存储过程

close():关闭游标对象

execute(op[, args]):执行一个数据库查询/命令

executemany(op[, args]):为给定的每个参数准备并执行一个数据库查询/命令

fetchone():得到结果集的下一行

fetchmany([size=cursor.arraysize]):得到结果集的下几行

fetchall():返回结果集中剩下的所有行

__iter__()

messages

next()

nextset()

rownumber

setinputsizes(sizes)

setoutputsize(size[, col])

#####################################################################

sqlite3

#####################################################################

使用sqlite不用安装,调用sqlite3的connect函数自动生成文件。

import sqlite3

cxn =sqlite3.connect(r’C:\temp\test’)

cur = cxn.cursoe()

cur.execute(‘CREATE TABLEtest(var1 VARCHAR(10), var2 INTEGER)’)

cur.execute(‘INSERT INTOtestable VALUES(“canux”, 1)’)

cur.execute(‘SELECT * FROM testable’)

for each in cur.fetchall():

print each

cur.close()

cxn.commit()

cxn.close()

#####################################################################

postgresql

#####################################################################

需要安装postgresql数据库,同时要安装python的API,有三个可用接口:

1.  psycopg2

2.  PyPgSQL

3.  PyGreSQL

import  psycopg2

cxn =

psycopg2.connect([database="postgres",]user="postgres",password=“*”)

cur = cxn.cursor()

cur.execute(‘SELECT * FROMpg_database’)

rows = cur.fetchall()

for i in rows:

print i

cur.close()

cxn.commit()

cxn.close()

#####################################################################

mysql

#####################################################################

需要安装mysql数据库,同时安装python的API,MySQLdb,也叫MySQL-python。

mysql的msqldb的connect有query属性。

import MySQLdb

cxn = MySQLdb.connect([db=‘mysql‘,]user=’root’,passwd=’*’)

cxn.query(‘CREATE DATABASEdatabasename’)

cxn.query(“GRANT ALL ONdatabasename.* to ‘’@’localhost’”)

cxn.commit()

cxn.close()

使用cursor:

cxn = MySQLdb.connect([db=‘mysql‘,]user=’root’,passwd=’*’)

cur = cxn.cursor()

cur.execute(‘CREATE TABLEtablename(var1 VARCHAR(8), var2 INT)’)

cur.execute(“INSERT INTOtablename VALUES(‘canux’, 1)”)

cur.execute(“SELECT * FROMtablename”)

for data in cur.fetchall():

print ‘%s\t%s’ % data

cur.execute(‘UPDATE tablenameSET val2=2 WHERE var1=”canux”’)

cur.execute(‘DELETE FROMtablename WHERE var1=”canux”’)

cur.execute(‘DROP TABLEtablename’)

cur.close()

cxn.commit()

cxn.close()

#####################################################################

时间: 2024-10-04 02:39:32

python: 数据库编程的相关文章

Python数据库编程pymysql

ython数据库编程pymysql 一.数据库编程介绍 数据库编程就是针对数据库的操作,通过编写程序的方式,让程序做为数据库的客户端进行数据库操作. 对于MySQL的操作我们可以通过SQL语句,但是有很多情况下我们需要写入MySQL的数据非常多,并且是在其他平台获取数据的同时写入MySQL,需要边获取边写入,这种情况是不适合使用SQL语句的. 有些情况是我们需要读取MySQL中的数据,来给代码使用,这个时候我们需要将数据直接读到代码中,也不适合使用SQL语句. Python提供了一个数据库编程的

Python数据库编程

简介 在任何应用中,都需要持久化存储,一般有3种基础的存储机制:文件.数据库系统以及一些混合类型.这种混合类型包括现有系统上的API.ORM.文件管理器.电子表格.配置文件等.在了解数据库以及如何在Python中使用他们之前,首先需要知道数据库概念以及SQL语句. 底层存储 数据库通常使用文件系统作为基本的持久化存储,它可以是普通的操作系统文件.专用的操作系统文件,甚至是原始的磁盘分区. 用户接口 大多数数据库系统提供了命令行工具,可以使用其执行SQL语句或查询.此外还有一些GUI工具,使用命令

第十三章 Python数据库编程

本章节讲解Python操作数据库,完成简单的增删改查工作,以MySQL数据库为例. Python的MySQL数据库操作模块叫MySQLdb,需要额外的安装下. 通过pip工具安装:pip install MySQLdb MySQLdb模块,我们主要就用到连接数据库的方法MySQLdb.Connect(),连接上数据库后,再使用一些方法做相应的操作. MySQLdb.Connect(parameters...)方法提供了以下一些常用的参数: 参数 描述 host 数据库地址 user 数据库用户名

python数据库(mysql)操作

一.软件环境 python环境默认安装了sqlite3,如果需要使用sqlite3我们直接可以在python代码模块的顶部使用import sqlite3来导入该模块.本篇文章我是记录了python操作mysql数据库,mysql数据库下载 由于我之前安装的是wampserver,默认安装了php.mysql和apache这3个环境,因此我没有在单独安装mysql数据库,只是下载了一个mysql管理工具Navicat for MySQL.在使用Navicat for MySQL连接本地mysql

[python] 专题九.Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mysql 二.MySQLdb模块: MySQLdb模式是Python中专门连接MySQL数据库的模块,另外Python开发环境的搭

Python网络编程05----django与数据库的交互

介绍 Django为多种数据库后台提供了统一的调用API,在Django的帮助下,我们不用直接编写SQL语句.Django将关系型的表(table)转换成为一个类(class).而每个记录(record)是该类下的一个对象(object).我们可以使用基于对象的方法,来操纵关系型数据库. 设置数据库 设置数据库需要修改settings.py文件 如果使用的数据库是mysql: [python] view plaincopy DATABASES = { 'default': { 'ENGINE' 

Python网络编程06----django数据库的增删改查

首先定义model如下. class UserInfo(models.Model): username=models.CharField(max_length=50,null=True,primary_key=False,db_index=True) #可以为空,不是主键,创建索引 password=models.CharField(max_length=50,error_messages={"invalid":"出错"}) #定义出错信息 gender=model

21 数据库编程 - 《Python 核心编程》

?? 介绍 ?? 数据库 和 Python RDBMSs, ORMs, and Python ?? Python 数据库应用程序程序员接口(DB-API) ?? 关系数据库 (RDBMSs) ?? 对象-关系管理器(ORMs) ?? 关系模块 21.1 介绍 持久存储 在任何的应用程序中,都需要持久存储. 一般说来,有三种基本的存储机制: 文件.关系型数 据库或其它的一些变种,例如现有系统的API,ORM.文件管理器.电子表格.配置文件等等. 基本的数据库操作和SQL 语言 底层存储 数据库的底

《Python核心编程》 第3版 中文版pdf

下载地址:网盘下载 内容简介 编辑 Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易用.本书是Python语言的经典入门读本,由两名顶尖的Python技术专家兼培训专家联手撰写,涵盖了该语言的所有核心内容.所有练习的解答都可在书后找到. 本书描述了Python程序的基本构件:类型.操作符.语句.函数.模块.类以及异常和介绍了更多高级主题,包括复杂的实例.无论是用于编写简单的脚本,还是复杂的