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

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

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

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

让我们开始吧!

Python 数据库 API

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

立即学习“Python免费学习笔记(深入)”;

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

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 命令。为此,我们将使用 sqlite3 模块的 execute() 方法。因此,Python 语句将如下所示:

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

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

我们现在可以运行一个新的 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 sqlite3conn = 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,其中包含两个字段:name 和 age。

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

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 redisredis_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的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2225270.html

(0)
上一篇 2025年2月26日 11:12:08
下一篇 2025年2月26日 11:12:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Dockerfile中多个CMD指令如何优化?

    Dockerfile 中多个 CMD 指令的优化策略 高效管理 Docker 镜像的启动命令至关重要。本文将探讨如何优化 Dockerfile 中的多个 CMD 指令,并解释其背后的原理。 许多开发者误以为多个 CMD 指令会增加镜像层数,…

    2025年3月28日
    100
  • LAMP环境下Linux如何优化性能

    提升LAMP(Linux, Apache, MySQL, PHP)架构下Linux服务器性能,需要综合考量操作系统、网络、数据库等多个方面。以下策略能有效优化系统效率: 一、操作系统与内核调优 系统及内核更新: 定期更新系统和内核版本,获取…

    2025年3月28日
    100
  • phpMyAdmin性能优化策略,加速数据库管理

    phpmyadmin性能优化需从多方面入手:1. 优化mysql服务器配置,包括增加缓存(innodb_buffer_pool_size, query_cache_size),优化连接池(max_connections)和选择合适的存储引擎…

    2025年3月28日
    100
  • Dockerfile中CMD指令如何正确启动多个服务?

    精简Dockerfile中的CMD指令,高效启动多个服务 许多Docker新手在构建镜像时,常常对Dockerfile中的CMD指令感到困惑,尤其是在需要启动多个服务时。本文将通过一个实际案例,讲解如何优化Dockerfile中的CMD指令…

    2025年3月28日
    100
  • 告别慢如蜗牛的缓存:Symfony Cache组件的应用实践

    我们的应用需要一个高效的缓存机制来存储一些经常访问的数据,例如用户数据、产品信息等等。最初,我们使用简单的文件缓存,将数据序列化后写入文件。这种方法在数据量较小的时候尚可接受,但随着数据量的不断增长,读取速度变得越来越慢,甚至出现超时的情况…

    2025年3月28日
    100
  • 高效缓存管理:Topthink/Think-Cache 的实践经验

    网站的用户数量快速增长,数据库查询的压力越来越大,导致页面加载速度变慢,用户体验下降。我最初尝试使用简单的文件缓存,但随着数据量的增加,文件操作的效率问题日益突出。而且,文件缓存的管理也变得越来越复杂。 我需要一种更可靠、更高效的缓存方案,…

    数据库 2025年3月28日
    100
  • 告别Silex应用的缓存难题:moust/silex-cache保驾护航

    我的silex应用负责处理大量的用户请求,其中一些数据是频繁访问且计算成本较高的。 最初,我尝试使用简单的文件缓存,但随着数据量的增加,文件系统的io操作成为了性能瓶颈,页面加载速度变得非常缓慢,用户体验极差。 这迫使我寻找更有效的缓存解决…

    数据库 2025年3月28日
    100
  • Linux日志中磁盘I/O问题怎样解决

    Linux系统磁盘I/O瓶颈导致系统性能下降?本文提供系统化解决方案,助您快速排查并解决问题。 第一步:确认问题存在 首先,使用iostat、vmstat、iotop等工具监控磁盘I/O活动。高磁盘I/O利用率通常表明存在问题。 第二步:定…

    2025年3月28日
    100
  • 告别缓慢的GraphQL查询:使用Graphpinator Persisted Queries提升性能

    最近,我负责维护一个使用graphql的api,随着用户数量的增加,api的响应速度逐渐变慢。分析后发现,许多用户都在重复发送相同的查询,导致服务器在解析和验证这些查询上浪费了大量资源。虽然我的解析器函数本身效率很高,但graphql本身的…

    数据库 2025年3月28日
    100
  • Linux下LAMP如何优化性能

    提升Linux环境下LAMP(Linux, Apache, MySQL, PHP)架构的性能,需要从操作系统、Web服务器、数据库和代码等多个层面入手。以下策略旨在全面提升系统效率: 一、系统内核及操作系统优化 保持系统更新: 定期更新操作…

    2025年3月28日
    100

发表回复

登录后才能评论