搜索
首页后端开发Python教程Python中的数据库处理:SQLite和Redis

Python中的数据库处理:SQLite和Redis

Sep 04, 2023 pm 07:37 PM
pythonredissqlite数据库处理

在我们生活的信息时代,我们可以看到世界正在交换多少数据。我们基本上是在广泛地创建、存储和检索数据!应该有一种方法来处理这一切——如果没有任何管理,它就不可能到处传播,对吗?这里是数据库管理系统(DBMS)。

DBMS 是一个软件系统,可让您创建、存储、修改、检索和以其他方式处理数据库中的数据。此类系统的大小也各不相同,从仅在个人计算机上运行的小型系统到在大型机上运行的大型系统。

本教程的重点是 Python,而不是数据库设计。是的,Python 非常能够与数据库交互,这就是我将在本教程中向您展示的内容。您将学习如何使用 Python 处理 SQLite 和 Redis 数据库。

让我们开始吧!

Python 数据库 API

如上所述,Python 能够与数据库交互。但是,它怎么能做到这一点呢? Python 使用所谓的 Python Database API 来与数据库进行交互。该 API 允许我们对不同的数据库管理系统 (DBMS) 进行编程。然而,对于不同的 DBMS,代码级别遵循的过程是相同的,如下所示:

  1. 与您选择的数据库建立连接
  2. 创建一个光标来与数据进行通信。
  3. 使用 SQL 操作数据(交互)。
  4. 告诉连接将 SQL 操作应用于数据并使它们永久化(提交),或者告诉它中止这些操作(回滚),从而返回将数据恢复到交互发生之前的状态。
  5. 关闭与数据库的连接。

SQLite

SQLite 是一个开源、功能齐全、独立(几乎不需要外部库的支持)、无服务器(不需要服务器来运行数据库引擎,并且是本地存储的数据库)、零配置(无需安装或配置)、基于 SQL 的轻量级数据库管理系统(可以在 SQLite 表上运行 SQL 查询),并使用一个数据文件来存储数据。

值得一提的是,SQLite 被 Google、Apple、Microsoft 等大公司使用,这使得它非常可靠。在本教程中,我们将使用 SQLite 与数据库交互,更具体地说,我们将使用 Python 中的 sqlite3 模块。

Python 和 SQLite

如上所述,使用数据库涉及五个个主要步骤。让我们看看这些步骤的实际效果。

1.建立与您选择的数据库的连接

该步骤实现如下:

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

正如 sqlite3 文档中所述:

要使用该模块,您必须首先创建一个表示数据库的 Connection 对象。

在上面的代码中,请注意数据将存储在文件 company.db 中。

2.创建游标来与数据通信

使用数据库的下一步是创建游标,如下所示:

curs = conn.cursor()

3.使用 SQL 操作数据

连接数据库并创建游标后,我们现在就可以处理(交互)数据了。换句话说,我们现在可以在数据库 company.db 上运行 SQL 命令。

假设我们要在数据库 company 中创建一个新表 employee。在这种情况下,我们需要运行 SQL 命令。为此,我们将使用 company 中创建一个新表 employee。在这种情况下,我们需要运行 SQL 命令。为此,我们将使用 sqlite3 模块的 execute() 模块的 execute() 方法。因此,Python 语句将如下所示:

curs.execute('创建表员工(姓名,年龄)')

此语句将运行一个 SQL 命令,该命令将创建一个名为 employee 的表,其中包含两列(字段)nameage

我们现在可以运行一个新的 SQL 命令来在表中插入数据,如下所示:

curs.execute("插入员工值('Ali', 28)")

您还可以一次插入多个值,如下所示:

值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]

在这种情况下,我们将使用方法execute(),而不是使用方法executemany()来执行上述多个值。

curs.executemany('插入员工值(?,?)', value)

4.提交更改

在此步骤中,我们希望应用(提交)我们在上一步中所做的更改。这很简单,如下所示:

conn.commit()

5.关闭与数据库的连接

执行操作并提交更改后,最后一步是关闭连接:

conn.close()

让我们将所有步骤放在一个脚本中。该程序将如下所示(请注意,我们必须首先导入 sqlite3 模块):

import sqlite3
conn = sqlite3.connect('company.db')
curs = conn.cursor()
curs.execute('create table employee (name, age)')
curs.execute("insert into employee values ('Ali', 28)")
values = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
curs.executemany('insert into employee values(?,?)', values)
conn.commit()
conn.close()

如果运行该脚本,您应该在当前目录中获得一个名为 company.db 的文件。下载此文件,因为我们将在下一步中使用它。

6.让我们浏览一下数据库

创建了数据库和表并添加了一些数据后,让我们看看 company.db (您在上一节中下载的文件)里面有什么。为此,我们将使用一个很好的工具:DB Browser for SQLite。继续将该工具下载到您的计算机上。打开程序后,您应该看到如下所示的屏幕:

Python中的数据库处理:SQLite和Redis

使用顶部的打开数据库按钮打开数据库,在这种情况下,您应该获得数据库结构,如下所示:

Python中的数据库处理:SQLite和Redis

请注意,我们列出了表 employee,其中包含两个字段:nameage

要确认上面的代码有效并且数据已添加到表中,请单击浏览数据选项卡。您应该看到类似以下内容:

Python中的数据库处理:SQLite和Redis

可以看到,数据库(company)和表(employee)已经创建完成,并且数据已成功添加到表中。

Redis

远程词典服务器,简称为Redis,是一个强大的 NoSQL 数据库,也能够充当内存缓存。 Redis 由 Salvatore Sanfilippo 开发,目前由 Redis Labs 维护。该软件使用C编程语言编写,并且是开源的(BSD许可证)。

Redis 最显着的特点之一就是它的数据结构存储机制。您可以使用 Python 中的相同数据类型(字符串、集合、整数、列表、字典等)在 Redis 中存储数据。 这使得 Redis 成为 Python 开发人员的热门选择。

Redis 和 Python

除了其数据结构存储机制之外,Python 开发人员还因为 Redis 拥有大量 Python 客户端而更喜欢 Redis 而不是其他 NoSQL 数据库,其中最受欢迎的选择可能是 redis-py。 Redis-py 提供了用于在 Redis 服务器中存储各种数据的内置命令。

现在我们对 Redis 有了基本的了解,让我们学习如何在其中存储数据。在继续之前,请确保您的计算机上安装了 Redis 服务器。

1.安装Redis.py客户端

首先,为您的 Python 脚本创建一个名为 redis-python 的新文件夹。接下来,使用命令终端 cd 到该文件夹​​,然后运行以下命令来安装 Redis 客户端:

pip install redis

然后,在 redis-python 中创建一个名为 app.py 的文件,并使用文本编辑器打开该文件。下一步是创建用于将数据添加到数据库的 Python 脚本。

2.将Redis客户端连接到Redis服务器

首先,在app.py中,导入redis并设置Redis服务器主机和端口地址的变量:

import redis
redis_host = 'localhost'
redis_port = 6379

接下来,定义要添加到数据库的数据。在本例中,我们将创建一个简单的 Python 字典:

user = {
    'ID': 1,
    'name': 'Kingsley Ubah',
    'email': 'ubahthebuilder@gmail.com',
    'role': 'Tech Writing',
}

接下来,使用 try... except 定义 add_to_db 函数。在 try 块中,我们连接到本地 Redis 服务器并将上述字典存储在数据库中,然后在控制台上输出值。如果代码失败,我们会在 except 块中打印错误对象。最后一部分将运行该函数:

def add_to_db():
    try:
        r = redis.StrictRedis(host = redis_host, port = redis_port, decode_responses=True)
        r.hmset("newUserOne", user)
        msg = r.hgetall("newUserOne")
        print(msg)
    except Exception as e:
        print(f"Something went wrong {e}")
 
# Runs the function:
if __name__ == "__main__":
    add_to_db()

3.启动服务器并运行代码

首先,通过在命令终端上执行以下命令来运行 Redis 服务器:

redis-cli

一旦服务器处于活动状态,您就可以使用以下命令运行 Python 脚本:

python app.py

如果一切顺利,包含用户配置文件的字典将使用 newUserOne 键添加到 Redis。此外,您应该在终端控制台上看到以下输出:

{
  'ID': '1', 
  'name': 'Kingsley Ubah', 
  'email': 'ubahthebuilder@gmail.com', 
  'role': 'Tech Writing', 
}

这就是 Redis 的全部内容!

结论

本教程仅触及使用 Python 处理数据库的皮毛。您可以从 sqlite3 模块了解更多方法,您可以在其中执行不同的数据库操作,例如更新和查询数据库。

要了解有关 redis-py 的更多信息,请立即阅读其完整文档。玩得开心!

以上是Python中的数据库处理:SQLite和Redis的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Apr 02, 2025 am 07:12 AM

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

如何提高jieba分词在景区评论分析中的准确性?如何提高jieba分词在景区评论分析中的准确性?Apr 02, 2025 am 07:09 AM

如何解决jieba分词在景区评论分析中的问题?当我们在进行景区评论分析时,往往会使用jieba分词工具来处理文�...

如何使用正则表达式匹配到第一个闭合标签就停止?如何使用正则表达式匹配到第一个闭合标签就停止?Apr 02, 2025 am 07:06 AM

如何使用正则表达式匹配到第一个闭合标签就停止?在处理HTML或其他标记语言时,常常需要使用正则表达式来�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用