总结Python中常用的数据库对接依赖库

liftword3周前 (12-08)技术文章15

Python应用程序与数据库的对接是非常常见的需求。在开发过程中,无论是关系型数据库,如MySQL、PostgreSQL、SQLite等,还是非关系型数据库。如MongoDB、Redis等,Python都有相应的数据库库来帮助开发者实现与数据库的交互,简化数据库交互步骤,下面我们就来看看在Python中常见的那些数据库对接库。

MySQL数据库

PyMySQL

PyMySQL 是一个纯Python实现的MySQL客户端库。它不需要安装任何C语言扩展,因此在许多环境中都非常易于使用,比较轻量,适合较小的项目或不需要高度性能的应用。我们可以通过如下的方式来进行安装。

pip install pymysql

示例代码

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='user',
    password='password',
    database='database'
)

with connection.cursor() as cursor:
    cursor.execute("SELECT * FROM users")
    result = cursor.fetchall()
    print(result)
connection.close()

MySQL Connector

MySQL Connector是由Oracle官方提供的MySQL数据库连接器,功能更全面,适合需要更多官方支持的项目,适合大规模项目中使用,可以通过如下的方式来安装

pip install mysql-connector-python

示例代码

import mysql.connector

connection = mysql.connector.connect(
    host="localhost",
    user="user",
    password="password",
    database="database"
)

cursor = connection.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
print(result)
cursor.close()
connection.close()

PostgreSQL数据库

Psycopg2

Psycopg2 是Python中与PostgreSQL数据库连接的标准库。它是一个C语言扩展,具有非常高的性能,支持异步查询等特性。可以通过如下的方式来进行安装。

pip install psycopg2

示例代码

import psycopg2

connection = psycopg2.connect(
    dbname="database",
    user="user",
    password="password",
    host="localhost"
)

cursor = connection.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
print(result)
cursor.close()
connection.close()

SQLAlchemy

SQLAlchemy 是Python中最流行的ORM库之一,让开发者通过Python类来操作数据库,支持多种数据库,包括PostgreSQL。通过SQLAlchemy,你可以使用Python对象操作数据库,而无需手写SQL语句,支持复杂的查询和数据库迁移。

pip install sqlalchemy psycopg2

示例代码

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('postgresql://user:password@localhost/database')
Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)

Session = sessionmaker(bind=engine)
session = Session()

users = session.query(User).all()
for user in users:
    print(user.name)
session.close()

SQLite数据库

SQLite3

Python内置的sqlite3库可以用来访问SQLite数据库,它是一个轻量级的关系型数据库,适合嵌入式应用和小型项目,由于SQLite3 是Python标准库的一部分,无需额外安装就可以直接使用。

示例代码

import sqlite3

connection = sqlite3.connect('example.db')
cursor = connection.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
connection.commit()

cursor.execute("SELECT * FROM users")
print(cursor.fetchall())
connection.close()

MongoDB数据库(非关系型)

PyMongo

MongoDB是一个NoSQL数据库,适合处理大规模、无结构或半结构化的数据。PyMongo是MongoDB的官方Python驱动程序。可以通过如下的方式来安装。

pip install pymongo

示例代码

from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['test_database']
collection = db['users']

collection.insert_one({"name": "Alice"})
user = collection.find_one({"name": "Alice"})
print(user)
client.close()

Redis数据库(键值存储)

Redis-py

Redis是一个开源的键值对数据库,常用于缓存和实时数据存储。redis-py 是Python客户端库,用于与Redis数据库进行交互,可以通过如下的方式来进行安装。

pip install redis

示例代码

import redis

client = redis.StrictRedis(host='localhost', port=6379, db=0)
client.set('foo', 'bar')
value = client.get('foo')
print(value.decode('utf-8'))

总结

Python中有许多用于数据库连接和操作的库,开发者可以根据项目的需求选择适合的库。通过合理选择和使用这些数据库库,Python开发者可以轻松地与各种数据库进行高效的交互,实现业务需求。

相关文章

Python操作Kubernetes集群完全指南

Python操作Kubernetes集群完全指南目录基础环境准备Python Kubernetes客户端介绍连接Kubernetes集群Pod操作实战Deployment管理Service资源操作Co...

Python中代理服务器的配置与应用

在网络通信中,代理服务器作为一种重要的网络中间件,充当着客户端和目标服务器之间的中间人角色。它能够接收来自客户端的请求,并将这些请求转发给目标服务器,然后将服务器的响应返回给客户端。Python作为一...