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')

 

 

 

# 连接数据库

 

# ...

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

 

目录
相关文章
|
1月前
|
关系型数据库 数据库连接 数据库
Python执行PG数据库查询语句:以Markdown格式打印查询结果
使用Python的`psycopg2`和`pandas`库与PostgreSQL交互,执行查询并以Markdown格式打印结果。首先确保安装所需库:`pip install psycopg2 pandas`。接着建立数据库连接,执行查询,将查询结果转换为DataFrame,再用`tabulate`库将DataFrame格式化为Markdown。代码示例包括连接函数、查询函数、转换和打印函数。最后限制列宽以适应输出。
|
1月前
|
SQL 关系型数据库 数据库
Python执行PostgreSQL数据库查询语句,并打印查询结果
本文介绍了如何使用Python连接和查询PostgreSQL数据库。首先,确保安装了`psycopg2`库,然后创建数据库连接函数。接着,展示如何编写SQL查询并执行,例如从`employees`表中选取所有记录。此外,还讨论了处理查询结果、格式化输出和异常处理的方法。最后,提到了参数化查询和事务处理以增强安全性及确保数据一致性。
Python执行PostgreSQL数据库查询语句,并打印查询结果
|
21天前
|
SQL 关系型数据库 数据库连接
Python连接线上数据库的实战指南
Python连接线上数据库的实战指南
23 1
|
25天前
|
SQL Oracle 关系型数据库
Python连接数据库进行数据查询的操作代码
mysql数据库(mariadb) 连接数据库 首先,你需要使用MySQLdb.connect()函数建立与MySQL数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(passwd),以及你想要操作的数据库名称(db)。 创建Cursor对象 一旦建立了数据库连接,你可以使用连接对象的cursor()方法来创建一个cursor对象。这个方法返回一个cursor实例,你可以使用这个实例来执行SQL查询和命令。
|
27天前
|
SQL 关系型数据库 MySQL
Python进阶第二篇(Python与MySQL数据库)
Python进阶第二篇(Python与MySQL数据库)
|
1月前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库
|
1月前
|
SQL 安全 API
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
|
1月前
|
JavaScript 关系型数据库 MySQL
Python实战:从猎聘网获取职位信息并存入数据库
Python实战:从猎聘网获取职位信息并存入数据库
|
1月前
|
SQL 关系型数据库 数据库
Python查询PostgreSQL数据库
木头左教你如何用Python连接PostgreSQL数据库:安装`psycopg2`库,建立连接,执行SQL脚本如创建表、插入数据,同时掌握错误处理和事务管理。别忘了性能优化,利用索引、批量操作提升效率。下期更精彩!💡 csvfile
Python查询PostgreSQL数据库
|
17天前
|
SQL Java 数据库连接
使用Python通过JDBC操作数据库(达梦数据库)
使用Python通过JDBC操作数据库(达梦数据库)
41 0