0

0

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

王林

王林

发布时间:2023-09-04 19:37:12

|

836人浏览过

|

来源于php中文网

原创

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

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

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

让我们开始吧!

Python 数据库 API

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

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

  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 命令。为此,我们将使用 sqlite3 模块的 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()

NT80 购物系统
NT80 购物系统

功能说明:1 会员可申请开店功能2 购买在线扣除金额3 冲值卡自动生成4 支持2级分类5 数据库压缩和备份6 会员分5个级别7 商品带讨论8 自带融合论坛,可关闭打开9 密码找回功能10 新闻``滚动新闻``帮助中心11 后台设置前台会员的上传权限12 可关闭/打开商店13 会员自助发布商品功能14 用户问题咨询管理

下载

让我们将所有步骤放在一个脚本中。该程序将如下所示(请注意,我们必须首先导入 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速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.8万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号