python 三层架构思想写代码。

在 Python 中实现数据库操作的三层架构一般包括以下三层:

  1. 数据访问层(Data Access Layer):负责与数据库进行交互,执行 SQL 查询和更新操作。

  2. 业务逻辑层(Business Logic Layer):处理业务逻辑,对数据进行处理和加工,调用数据访问层提供的接口完成数据的增删改查操作。

  3. 表现层(Presentation Layer):与用户交互,接收用户输入并展示数据,将用户请求传递给业务逻辑层进行处理,并将处理结果展示给用户。

下面是一个简单的示例,展示如何使用三层架构实现 Python 中的增删改查操作:

# 数据访问层
class Database:def __init__(self, connection):self.connection = connectiondef execute_query(self, query, params=None):cursor = self.connection.cursor()if params:cursor.execute(query, params)else:cursor.execute(query)return cursor.fetchall()def execute_update(self, query, params=None):cursor = self.connection.cursor()if params:cursor.execute(query, params)else:cursor.execute(query)self.connection.commit()return cursor.rowcount# 业务逻辑层
class DataAccessLayer:def __init__(self, database):self.db = databasedef create_record(self, data):query = "INSERT INTO table_name (column1, column2, ...) VALUES (%s, %s, ...)"return self.db.execute_update(query, data)def update_record(self, id, data):query = "UPDATE table_name SET column1 = %s, column2 = %s WHERE id = %s"params = (data['column1'], data['column2'], id)return self.db.execute_update(query, params)def delete_record(self, id):query = "DELETE FROM table_name WHERE id = %s"return self.db.execute_update(query, (id,))def get_record(self, id):query = "SELECT * FROM table_name WHERE id = %s"result = self.db.execute_query(query, (id,))return result[0] if result else None# 表现层
def main():# 建立数据库连接connection = create_database_connection()# 初始化数据访问层db = Database(connection)dal = DataAccessLayer(db)# 业务逻辑操作示例# 创建记录data_to_insert = {'column1': value1, 'column2': value2, ...}inserted_rows = dal.create_record(data_to_insert)# 更新记录record_id_to_update = 1data_to_update = {'column1': new_value1, 'column2': new_value2, ...}updated_rows = dal.update_record(record_id_to_update, data_to_update)# 删除记录record_id_to_delete = 1deleted_rows = dal.delete_record(record_id_to_delete)# 查询记录record_id_to_get = 1record = dal.get_record(record_id_to_get)if record:print("Record found:", record)else:print("Record not found.")# 关闭数据库连接connection.close()if __name__ == "__main__":main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频号小店在哪里登录?入驻的时候需要什么资质?

我是电商珠珠 视频号小店距离现在发展了不过一年多的时间,作为一个新平台就代表着很多机会、红利。所以有很多商家都看准了,准备往这个平台上发展。作为新手来说,还不知道视频号小店登录注册入口以及入驻的时候需要什么资质,接下…

Go语言学习Day6:数组与切片

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

禁止软件访问外网

WINDOWS平台上,在特殊情况下我们要防止一些软件偷偷访问外网,比如ResEdit.exe一联网就当掉,只要把WINDOWS的防火墙功能打印,将下面脚本保存为rbt_runas_admin_firewall_block_exe_in_dir.cmd ::runas /user:administrator cmd echo 右击以管理员方式运行 cd /d %~dp0 for /r …

pytest教程-21-失败重跑插件-pytest-rerunfailures

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest插件的基本使用方法,本小节我们讲解一下pytest用例失败重跑插件pytest-rerunfailures。 测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题&…

【C语言】带你完全理解指针(四)函数指针的应用sqort函数的实现

前言: 本文主要是函数指针的重要应用,介绍qsort函数以及模拟实现这样一个不限制使用数据类型的快速排序函数。 回调函数 函数指针有一个非常大的作用就是实现回调函数。非常重要 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xf…

python如何画奥运五环

绘制奥运五环主要涉及到Python中的turtle绘图库运用: 程序源代码为: import turtle turtle.width(10) turtle.color(black) turtle.circle(50) turtle.penup() turtle.goto(120,0) turtle.pendown() turtle.color(red) turtle.circle(50) turtle.penup()…

基于springboot酒店管理平台

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于酒店管理平台系统当然也不能排除在外,随着网络技术的不断成熟,带动了酒店管理平台系统,它彻底改变了过…

深入理解 React 中的 children props 和 render props

深入理解 React 中的 children props 和 render props 在 React 中,children props 和 render props 是两种常见的组件复用模式,它们都可以帮助我们更好地组织和复用组件代码。虽然它们的实现方式有所不同,但都能够有效地实现组件之间的数据…

坚持刷题|分发饼干

文章目录 题目思路代码实现实现总结主要步骤时间复杂度 扩展问题 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天刷第一个贪心算法:分发饼干 题目 455.分发饼干 思路 要解决这个问题,可以使用…

世界上有那么多条条框框,就是告诉你不用格格都入

在我们的生活、工作和学习中,总是充斥着各种各样的规则和标准。这些条条框框,有时候像是一座座无形的墙,将我们限制在一个狭小的空间里。然而,如果我们换一个角度来看待这些规则,就会发现它们实际上是在告诉我们&#…

Autodesk Maya 2025 mac玛雅三维动画特效软件

Autodesk Maya 2025 for Mac是一款功能强大、操作简便的三维动画软件,适用于电影、电视、游戏、建筑、工业设计、虚拟现实和动画等领域。无论是专业设计师还是初学者,都可以通过Maya 2025实现自己的创意和想法,创作出高质量的三维作品。 软件…

MySQL数据库优化和MySQL故障

一、MySQL数据库优化 硬件优化 CPU:推荐使用S.M.P.架构的多路对称CPU 内存:4GB以上的物理内存 磁盘:RAID-01磁盘阵列或固态硬盘 MySQL配置文件优化 调整配置项 SQL优化 尽量使用索引进行查询 优化分页 GROUP BY优化 MySQL架构优化 架构选择:主从、主主、一主多从、多主多…

多尺度变换(Multidimensional Scaling ,MDS)详解

一、基本思想 MDS(Multidimensional Scaling ,MDS多维尺度变换)是一种经典的降维算法,其基本思想是通过保持数据点之间的距离关系,将高维数据映射到低维空间中。 具体来说,MDS算法的基本步骤如下&#xff…

栈————顺序栈和链式栈

目录 栈 顺序栈 1、初始化顺序栈 2、判栈空 3、进栈 4、出栈 5、读栈顶元素 6、遍历 链式栈 1、初始化链式栈 2、断链式栈是否为空判 3、入栈(插入) ​编辑​编辑 4、出栈(删除) 5、读取栈顶元素 6、输出链式栈中各个节点的值(遍历) 栈 …

Express.js项目实战(1)—— 我的藏书馆

首先新建文件夹——myLibrary 在vscode中点击文件>点击 Duplicate Workspace(以工作区的方式打开文件夹myLibrary) 点击duplicate Workspace(打开工作区) 之后,会出现以下界面 点击打开文件夹,选择新建的文件夹,会出…

Vscode + PlatformIO + Arduino 搭建EPS32开发环境

Vscode PlatformIO Arduino 搭建EPS32开发环境 文章目录 Vscode PlatformIO Arduino 搭建EPS32开发环境1. Vscode插件安装2. 使用PlatformIO新建工程3.工程文件的基本结构4.一个基本的测试用例Reference 1. Vscode插件安装 如何下载vscode这里不再赘述,完成基本…

超低代码智能音频开发来了:XMOS宣布与DSP Concepts建立合作伙伴关系推动AIoT音频应用

人工智能和芯片供应商 XMOS 宣布与嵌入式音频软件专家 DSP Concepts 建立合作伙伴关系。该合作协议将允许音频开发人员将 XMOS 的高度确定性、低延迟的 xcore.ai 平台与 DSP Concepts 的 Audio Weaver 软件结合起来。该软件使用户能够利用多核算力以图形方式设计和调试音频和语…

EXCEL VBA与CSV的结合使用,提高多个CSV的处

EXCEL VBA与CSV的结合使用,提高多CSV的处理 1、首先创建一个文本文件,然后将copy *.csv 合并.csv粘贴,并重命名后缀未bat 2、将bat和多个CSV放一个路径下 3、双击运行合并.bat,运行完成会后生成合并.csv 4、将csv用Excel打开&…

ALPHA开发板上PHY网络芯片LAN8720

一. 简介 正点原子的开发板 ALPHA开发板,有线网络硬件方案所使用的也是最常用的一种方案,IMX6ULL芯片内部是自带 MAC网络芯片的,所以,也就是采用 "SOC内部集成网络MAC外设 PHY网络芯片方案"。 ALPHA开发板使用的PHY网…

算法第三十七天-旋转链表

旋转链表 题目要求 解题思路 题意:将链表中每个元素向后移动k个位置,相当于把链表的后面k%len节点移到链表的最前面。 所以本题步骤为: 1.求出链表长度; 2.找出倒数第k1个节点 3.链表重整:将连败哦的倒数第k1个节点和…