python数据库调用四种方式

Python是一种高级语言,它在现代编程语言中非常流行。Python提供了多种方式来与数据库进行交互。这些方法包括使用Python的内置模块、Python的第三方模块、使用ORM(对象关系映射)以及使用异步框架中的数据库API。本文将讨论这四种方法以及如何使用它们与数据库进行交互。

一、Python的内置模块

Python的内置模块包括sqlite3、MySQLdb、psycopg2等。sqlite3适用于SQLite数据库,MySQLdb适用于MySQL数据库,psycopg2适用于PostgreSQL数据库。这些模块都提供了连接到数据库、创建表、插入数据、查询数据和关闭连接等基本操作。下面以MySQL数据库为例来演示如何使用Python的内置模块与数据库进行交互。

1.连接到MySQL数据库

要连接到MySQL数据库,需要使用Python的内置模块MySQLdb。首先需要导入MySQLdb模块,然后使用connect()函数创建一个连接对象。连接参数通常包括主机名、用户名、密码和数据库名等。

```python

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="mydb")

```

2.创建表

要创建表,需要执行一条CREATE TABLE语句。可以使用cursor()函数创建一个游标对象,然后使用execute()函数来执行语句。例如,以下代码创建了一个名为user的表,包含id、name和age三列。

```python

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 创建数据表SQL语句

sql = """CREATE TABLE user (

id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

age INT(11) NOT NULL,

PRIMARY KEY (id))"""

# 执行SQL语句

cursor.execute(sql)

# 关闭数据库连接

db.close()

```

3.插入数据

要插入数据,需要执行一条INSERT语句。可以使用execute()函数执行语句。例如,以下代码在user表中插入了一条数据,其中id为1,name为张三,age为20。

```python

# 打开数据库连接

db = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="mydb")

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 插入语句

sql = "INSERT INTO user(id, name, age) VALUES (1, '张三', 20)"

try:

# 执行SQL语句

cursor.execute(sql)

# 提交修改

db.commit()

except:

# 发生错误时回滚

db.rollback()

# 关闭数据库连接

db.close()

```

4.查询数据

要查询数据,需要执行一条SELECT语句。可以使用execute()函数执行语句,然后使用fetchall()函数获取所有的结果。例如,以下代码查询user表中的所有数据,并打印出来。

```python

# 打开数据库连接

db = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="mydb")

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 查询语句

sql = "SELECT * FROM user"

try:

# 执行SQL语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

id = row[0]

name = row[1]

age = row[2]

# 打印结果

print("id=%d,name=%s,age=%d" % (id, name, age))

except:

print("Error: unable to fetch data")

# 关闭数据库连接

db.close()

```

5.关闭连接

完成所有操作后,需要关闭连接。可以使用close()函数关闭连接。

```python

# 关闭数据库连接

db.close()

```

二、Python的第三方模块

除了Python的内置模块,还有许多第三方模块可用于与不同类型的数据库进行交互。这些模块提供了更高级的功能和更易于使用的API。一些流行的第三方模块包括PyMySQL、pyodbc、SQLAlchemy等。这里以PyMySQL作为例子,介绍如何使用第三方模块与MySQL数据库进行交互。

1.安装PyMySQL模块

要使用PyMySQL模块,需要首先安装它。可以使用pip命令来安装PyMySQL模块。

```

pip install PyMySQL

```

2.连接到MySQL数据库

要连接到MySQL数据库,使用connect()函数创建一个连接对象,连接参数通常包括主机名、用户名、密码和数据库名等。

```python

import pymysql

# 打开数据库连接

db = pymysql.connect(

host="localhost",

user="root",

passwd="123456",

db="mydb"

)

```

3.创建表

要创建表,需要执行一条CREATE TABLE语句。可以使用cursor()函数创建一个游标对象,然后使用execute()函数来执行语句。例如,以下代码创建了一个名为user的表,包含id、name和age三列。

```python

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 创建数据表SQL语句

sql = """CREATE TABLE user (

id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

age INT(11) NOT NULL,

PRIMARY KEY (id))"""

# 执行SQL语句

cursor.execute(sql)

# 关闭数据库连接

db.close()

```

4.插入数据

要插入数据,需要执行一条INSERT语句。可以使用execute()函数执行语句。例如,以下代码在user表中插入了一条数据,其中id为1,name为张三,age为20。

```python

# 打开数据库连接

db = pymysql.connect(

host="localhost",

user="root",

passwd="123456",

db="mydb"

)

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 插入语句

sql = "INSERT INTO user(id, name, age) VALUES (1, '张三', 20)"

try:

# 执行SQL语句

cursor.execute(sql)

# 提交修改

db.commit()

except:

# 发生错误时回滚

db.rollback()

# 关闭数据库连接

db.close()

```

5.查询数据

要查询数据,需要执行一条SELECT语句。可以使用execute()函数执行语句,然后使用fetchall()函数获取所有的结果。例如,以下代码查询user表中的所有数据,并打印出来。

```python

# 打开数据库连接

db = pymysql.connect(

host="localhost",

user="root",

passwd="123456",

db="mydb"

)

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 查询语句

sql = "SELECT * FROM user"

try:

# 执行SQL语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

id = row[0]

name = row[1]

age = row[2]

# 打印结果

print("id=%d,name=%s,age=%d" % (id, name, age))

except:

print("Error: unable to fetch data")

# 关闭数据库连接

db.close()

```

6.关闭连接

完成所有操作后,需要关闭连接。可以使用close()函数关闭连接。

```python

# 关闭数据库连接

db.close()

```

三、使用ORM

ORM(对象关系映射)是一种编程技术,它将对象模型和关系数据库模型之间建立映射关系。通过ORM,可以使用面向对象的方式来处理数据库操作,避免直接与数据库打交道,提高了应用的可维护性和可扩展性。Python的ORM框架包括Django ORM、SQLAlchemy等。这里以SQLAlchemy作为例子,介绍如何使用ORM来操作MySQL数据库。

1.安装SQLAlchemy模块

要使用SQLAlchemy模块,需要首先安装它。可以使用pip命令来安装SQLAlchemy模块。

```

pip install SQLAlchemy

```

2.连接到MySQL数据库

要使用ORM操作MySQL数据库,首先需要创建一个Engine对象,然后使用create_all()函数创建所有的表。例如,以下代码创建了一个Engine对象,并使用create_all()函数创建了一个名为user的表,包含id、name和age三列。

```python

from sqlalchemy import create_engine, Column, Integer, String

from sqlalchemy.orm import sessionmaker

from sqlalchemy.ext.declarative import declarative_base

# 创建一个Engine对象

engine = create_engine("mysql+pymysql://root:123456@localhost/mydb")

# 创建所有的表格

Base.metadata.create_all(engine)

```

3.定义模型

要使用ORM,需要定义模型。模型是一个Python类,它与数据库中的表对应。可以使用Column()函数定义模型中的每个字段。例如,以下代码定义了一个名为User的模型,它包含id、name和age三个字段。

```python

# 创建一个Base对象

Base = declarative_base()

# 定义模型

class User(Base):

# 表名

__tablename__ = "user"

# 字段

id = Column(Integer, primary_key=True, autoincrement=True)

name = Column(String(20), nullable=False)

age = Column(Integer, nullable=False)

# 构造函数

def __init__(self, name, age):

self.name = name

self.age = age

```

4.插入数据

要插入数据,创建一个Session对象,然后使用add()函数将数据添加到数据库中。例如,以下代码在user表中插入了一条数据,其中name为张三,age为20。

```python

# 创建一个Session对象

Session = sessionmaker(bind=engine)

session = Session()

# 插入数据

user = User("张三", 20)

session.add(user)

# 提交事务

session.commit()

# 关闭Session

session.close()

```

5.查询数据

要查询数据,使用query()函数进行查询。例如,以下代码查询user表中的所有数据,并打印出来。

```python

# 创建一个Session对象

Session = sessionmaker(bind=engine)

session = Session()

# 查询数据

users = session.query(User).all()

for user in users:

print("id=%d,name=%s,age=%d" % (user.id, user.name, user.age))

# 关闭Session

session.close()

```

6.关闭连接

完成所有操作后,需要关闭连接。可以使用close()函数关闭连接。

```python

# 关闭连接

engine.dispose()

```

四、使用异步框架中的数据库API

异步框架(如Tornado、asyncio等)提供了自己的数据库API来支持异步编程。这些API通常基于Python的内置模块或第三方模块,并提供了协程的支持。这里以Tornado的异步MySQLdb模块为例,演示如何使用异步框架中的数据库API来操作MySQL数据库。

1.安装异步MySQLdb模块

要使用异步MySQLdb模块,需要首先安装它。可以使用pip命令来安装异步MySQLdb模块。

```

pip install torndb

```

2.连接到MySQL数据库

要连接到MySQL数据库,使用Connection对象创建一个连接对象,连接参数通常包括主机名、用户名、密码和数据库名等。

```python

import torndb

# 创建一个连接对象

db = torndb.Connection(

host="localhost",

user="root",

password="123456",

database="mydb"

)

```

3.创建表

要创建表,需要执行一条CREATE TABLE语句。可以使用execute()函数执行语句。例如,以下代码创建了一个名为user的表,包含id、name和age三列。

```python

# 执行SQL语句

db.execute("""

CREATE TABLE user (

id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

age INT(11) NOT NULL,

PRIMARY KEY (id)

)

""")

```

4.插入数据

要插入数据,使用execute()函数执行一条INSERT语句。例如,以下代码在user表中插入了一条数据,其中name为张三,age为20。

```python

# 执行SQL语句

db.execute("INSERT INTO user(id, name, age) VALUES (%s, %s, %s)", 1, "张三", 20)

```

5.查询数据

要查询数据,使用query()函数进行查询。例如,以下代码查询user表中的所有数据,并打印出来。

```python

# 执行SQL语句

users = db.query("SELECT * FROM user")

for user in users:

print("id=%d,name=%s,age=%d" % (user.id, user.name, user.age))

```

6.关闭连接

完成所有操作后,需要关闭连接。可以使用close()函数关闭连接。

```python

# 关闭连接

db.close()

```

Python分离日志错误

在Python中,有时候需要将错误日志和普通日志分开存储,以便更好地进行管理和分析。Python提供了logging模块来支持日志功能。可以使用logging模块来记录错误信息和普通信息,并将它们保存到不同的文件中。

1.创建日志对象

要记录日志,需要首先创建一个日志对象。可以使用basicConfig()函数来配置日志记录器,如输出级别、格式、文件名等。例如,以下代码创建了一个名为error_log的日志文件,记录错误信息。

```python

import logging

logging.basicConfig(

level=logging.ERROR,

format="%(asctime)s %(levelname)s %(message)s",

filename="error_log.log",

filemode="w"

)

```

2.记录错误日志

要记录错误日志,使用error()函数来记录错误信息。例如,以下代码模拟了一个发生错误的情况,并记录错误日志。

```python

try:

# 模拟发生错误的情况

a = 1 / 0

except Exception as e:

# 记录错误日志

logging.error(str(e))

```

3.记录普通日志

要记录普通日志,使用info()函数来记录信息。例如,以下代码记录了一条普通日志。

```python

# 记录普通日志

logging.info("Hello, world!")

```

通过上述方法,就可以将错误日志和普通日志分别记录到不同的文件中。这样可以更好地管理和分析日志信息,提高了代码的可维护性和可扩展性。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(13) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部