Python数据库

简介: Python数据库

Python与数据库之间的交互通常通过数据库适配器(或a称为驱动)实现,这些适配器允许Python程序以一致的方式与各种数据库(如MySQL、SQLite、PostgreSQL等)进行交互。下面是一些基础的Python数据库操作,以SQLite为例,因为它是轻量级的,通常与Python一起分发。

1. 安装SQLite适配器

Python标准库已经包含了SQLite适配器,所以无需额外安装。

2. 连接到SQLite数据库

 

import sqlite3

 

 

 

# 连接到SQLite数据库

 

# 如果数据库不存在,那么它将被创建

 

# 如果数据库存在,那么将连接到该数据库

 

conn = sqlite3.connect('example.db')

 

 

 

# 创建一个Cursor对象,并执行SQL查询

 

cursor = conn.cursor()

3. 执行SQL查询

 

# 创建一个表

 

cursor.execute('''

 

CREATE TABLE IF NOT EXISTS users (

 

id INTEGER PRIMARY KEY,

 

name TEXT NOT NULL,

 

age INTEGER

 

)

 

''')

 

 

 

# 插入数据

 

cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))

 

 

 

# 查询数据

 

cursor.execute('SELECT * FROM users')

 

rows = cursor.fetchall()

 

for row in rows:

 

print(row)

 

 

 

# 更新数据

 

cursor.execute("UPDATE users SET age = ? WHERE name = ?", (30, 'Alice'))

 

 

 

# 删除数据

 

cursor.execute("DELETE FROM users WHERE name = ?", ('Alice',))

4. 提交更改并关闭连接

 

# 提交(保存)更改

 

conn.commit()

 

 

 

# 关闭连接

 

conn.close()

5. 错误处理

当与数据库交互时,可能会遇到各种错误(如SQL语法错误、数据库连接问题等)。因此,使用try...except块来处理这些错误是很重要的。

 

try:

 

# ... 数据库操作 ...

 

except sqlite3.Error as e:

 

print("Database error:", e)

 

finally:

 

# 关闭连接

 

if conn:

 

conn.close()

6. 使用ORM(对象关系映射)

虽然直接使用SQL语句与数据库交互是可行的,但使用ORM(如SQLAlchemy)可以使代码更简洁、易读、易维护。

这只是一个简单的Python数据库操作入门。在实际应用中,你可能还需要处理更复杂的查询、索引、事务等。每个数据库都有其特定的语法和功能,因此最好查阅相关数据库的官方文档以获取更详细的信息。

在Python中连接数据库时,设置环境变量是一种常见做法,这样可以避免在代码中硬编码数据库连接信息,如用户名、密码、数据库名等。这样可以使代码更加安全、可移植,并且便于管理不同的环境(如开发环境、测试环境、生产环境)。

以下是如何在Python中设置和使用环境变量的步骤:

1. 设置环境变量

环境变量可以在操作系统级别设置,也可以在Python代码中设置。

在操作系统级别设置环境变量(以Linux和macOS为例):

1. 打开终端。

2. 使用export命令设置环境变量,例如:

bash

 

export DATABASE_URL="sqlite:///path/to/your/database.db"

或者,你可以将这条命令添加到~/.bashrc~/.bash_profile~/.zshrc(取决于你使用的shell)中,这样每次打开新的终端时,环境变量就会自动设置。

在Windows上设置环境变量:

1. 右键点击“此电脑”或“计算机”,选择“属性”。

2. 点击“高级系统设置”。

3. 在“系统属性”窗口中点击“环境变量”按钮。

4. 在“环境变量”窗口中,点击“新建”来添加新的环境变量。

在Python代码中设置环境变量:

虽然不推荐在代码中直接设置环境变量(因为这会使得环境信息依赖于特定的代码执行),但有时出于测试或演示目的,你可能需要这样做。

 

import os

 

 

 

os.environ['DATABASE_URL'] = 'sqlite:///path/to/your/database.db'

2. 在Python代码中使用环境变量

在Python代码中,你可以使用os.environ字典来访问环境变量。

 

import os

 

import sqlite3

 

 

 

# 从环境变量中获取数据库连接字符串

 

database_url = os.environ.get('DATABASE_URL')

 

 

 

# 解析连接字符串并连接到数据库

 

if database_url.startswith('sqlite://'):

 

# 对于SQLite,连接字符串通常是一个文件路径

 

conn = sqlite3.connect(database_url[len('sqlite://'):])

 

else:

 

# 对于其他数据库,你可能需要使用不同的库和连接方法

 

# 例如,对于PostgreSQL,你可能会使用psycopg2库

 

# 对于MySQL,你可能会使用mysql-connector-python库

 

# 这里只是一个示例,并不适用于其他数据库

 

conn = None 

 

 

 

# ... 执行数据库操作 ...

 

 

 

# 关闭连接

 

if conn:

 

conn.close()

3. 使用配置文件

除了环境变量,另一种常见的做法是使用配置文件(如.env文件或.ini文件)来存储数据库连接信息。你可以使用Python的configparser模块或第三方库(如python-dotenv)来读取这些配置文件。

例如,使用python-dotenv库:

首先,安装python-dotenv库:

bash

 

pip install python-dotenv

然后,创建一个.env文件,并在其中设置环境变量:

 

DATABASE_URL=sqlite:///path/to/your/database.db

最后,在Python代码中加载.env文件并使用环境变量:

 

from dotenv import load_dotenv

 

import os

 

 

 

# 加载.env文件

 

load_dotenv()

 

 

 

# 获取环境变量

 

database_url = os.environ.get('DATABASE_URL')

 

 

 

# 连接数据库

 

# ...

使用配置文件的好处是你可以将敏感信息(如密码)从代码中分离出来,使得代码更安全、更易于管理。

 

目录
相关文章
|
22天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
120 68
|
23天前
|
关系型数据库 MySQL 数据处理
探索Python中的异步编程:从asyncio到异步数据库操作
在这个快节奏的技术世界里,效率和性能是关键。本文将带你深入Python的异步编程世界,从基础的asyncio库开始,逐步探索到异步数据库操作的高级应用。我们将一起揭开异步编程的神秘面纱,探索它如何帮助我们提升应用程序的性能和响应速度。
|
1月前
|
存储 缓存 Shell
你知道 Python 其实自带了小型数据库吗
你知道 Python 其实自带了小型数据库吗
20 2
你知道 Python 其实自带了小型数据库吗
|
1月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
1月前
|
SQL 机器学习/深度学习 数据采集
SQL与Python集成:数据库操作无缝衔接22.bijius.com
自动化数据预处理:使用Python库(如Pandas)自动清洗、转换和准备数据,为机器学习模型提供高质量输入。 实时数据处理:集成Apache Kafka或Amazon Kinesis等流处理系统,实现实时数据更新和分析。
|
1月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
1月前
|
数据库连接 Linux 数据库
GBase 8s数据库连接 – Python
GBase 8s数据库连接 – Python
|
1月前
|
SQL 机器学习/深度学习 数据库
SQL与Python集成:数据库操作无缝衔接
在开始之前,确保你已经安装了必要的Python库,如`sqlite3`(用于SQLite数据库)或`psycopg2`(用于PostgreSQL数据库)。这些库提供了Python与SQL数据库之间的接口。
|
1月前
|
SQL 关系型数据库 数据库
使用 PostgreSQL 和 Python 实现数据库操作
【10月更文挑战第2天】使用 PostgreSQL 和 Python 实现数据库操作
|
2月前
|
数据采集 关系型数据库 MySQL
如何用Python+sqlalchemy创建数据库
如何用Python+sqlalchemy创建数据库