【14.1 python中的数据库编程接口】

python中的数据库编程接口


Python中的数据库编程接口主要依赖于各种数据库库(libraries)或驱动程序(drivers),这些库和驱动程序为Python程序提供了与不同数据库系统交互的能力。Python支持多种数据库,包括但不限于关系型数据库(如MySQL、PostgreSQL、SQLite)和非关系型数据库(如MongoDB、Redis)。

1. 数据库连接

在Python中,与数据库交互的第一步通常是建立连接。这通常涉及指定数据库的位置、认证信息(如用户名和密码)、以及任何其他必要的连接参数。连接一旦建立,Python程序就可以执行SQL查询、存储过程调用、事务处理等操作。

2. 主要数据库接口

a. SQLite

SQLite是一个轻量级的数据库,完全嵌入到Python中,无需单独的服务器进程。Python标准库中的sqlite3模块提供了对SQLite数据库的完整支持。

示例

import sqlite3

# 连接到SQLite数据库
# 如果文件不存在,会自动在当前目录创建
conn = sqlite3.connect('example.db')

# 创建一个Cursor对象并执行一条SQL语句
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS stocks
             (date text, trans text, symbol text, qty real, price real)''')

# 插入数据
c.execute("INSERT INTO stocks VALUES ('2023-01-01','BUY','RHAT',100,35.14)")

# 提交事务
conn.commit()

# 关闭连接
conn.close()
b. MySQL

对于MySQL数据库,Python社区中最流行的库是mysql-connector-pythonPyMySQL。这些库提供了Python到MySQL数据库的接口。

安装mysql-connector-python

pip install mysql-connector-python

示例

import mysql.connector

# 连接到MySQL数据库
conn = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

cursor = conn.cursor()

# 执行SQL查询
cursor.execute("SELECT * FROM your_table")

# 获取查询结果
for row in cursor:
  print(row)

# 关闭连接
cursor.close()
conn.close()
c. PostgreSQL

对于PostgreSQL数据库,psycopg2是最流行的库。

安装psycopg2

pip install psycopg2-binary

示例

import psycopg2

# 连接到PostgreSQL数据库
conn = psycopg2.connect(
    dbname="yourdbname", 
    user="yourusername", 
    password="yourpassword", 
    host="127.0.0.1", 
    port="5432"
)

cur = conn.cursor()

# 执行SQL查询
cur.execute("SELECT * FROM your_table")

# 获取查询结果
rows = cur.fetchall()
for row in rows:
    print(row)

# 关闭连接
cur.close()
conn.close()
d. MongoDB

MongoDB是一个非关系型数据库,PyMongo是Python的MongoDB官方驱动程序。

安装PyMongo

pip install pymongo

示例

from pymongo import MongoClient

# 连接到MongoDB
client = MongoClient('localhost', 27017)

# 选择数据库和集合
db = client['mydatabase']
collection = db['mycollection']

# 插入文档
post = {"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"]}
post_id = collection.insert_one(post).inserted_id

# 查询文档
for post in collection.find():
    print(post)

# 关闭MongoDB连接(实际上,PyMongo会自动管理连接池)
# client.close()

3. ORM(对象关系映射)

除了直接使用数据库库之外,Python还提供了许多ORM框架,如SQLAlchemy(针对关系型数据库)和MongoEngine(针对MongoDB)。ORM框架允许开发者使用Python类来映射数据库中的表或集合,从而简化了数据库交互的代码。

结论

Python提供了丰富的数据库编程接口,支持多种数据库系统。通过选择合适的库或ORM框架,Python程序可以轻松地与各种数据库进行交互。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值