Python与数据库交互

「异步魔法:Python数据库交互的革命」(一) 告别缓慢的数据库操作,拥抱异步魔法!在这个信息爆炸的时代,我们带你进入Python异步编程的神秘领域,学习如何同时施展多个咒语而不需等待。了解asyncio的魔力,掌握Async SQLAlchemy和Tortoise-ORM的秘密,让你的数据库操作快如闪电。不仅如此,我们还将揭示性能优化的秘籍和安全性的守护符,让你的数据魔法既快速又安全! 阅读详情

知识点一:mysql事务

知识点二:python链接mysql

知识点三:python链接redis

知识点一:mysql事务

    关系型数据库的ACID(原子性、一致性、隔离性与持久性)
    #一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
    #1 原子性
原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。可采用“A向B转账”这个例子来说明解释在DBMS中,默认情况下一条SQL就是一个单独事务,事务是自动提交的。只有显式的使用start transaction开启一个事务,才能将一个代码块放在事务中执行。

    #2 一致性
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。

    对银行转账事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT(账户)表中a和b的存款总额为2000

    #隔离性
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
简单说: 隔离性追求的是并发情形下事务之间互不干扰。
事务隔离分为不同级别,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。
    #未提交读: 在读数据时不会检查或使用任何锁。因此,在这种隔离级别中可能读取到没有提交的数据。
    #已提交读:只读取提交的数据并等待其他事务释放排他锁。读数据的共享锁在读操作完成后立即释放。已提交读是SQL Server的默认隔离级别
    #可重复读: 像已提交读级别那样读数据,但会保持共享锁直到事务结束,
    #可串行读:工作方式类似于可重复读。但它不仅会锁定受影响的数据,还会锁定这个范围。这就阻止了新数据插入查询所涉及的范围。

    #持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

演示

begin;   #开启事物
select *from new_tb_name;
insert into new_tb_name values(3,'he11o',18);
commit;  #提交成功


begin;
insert into new_tb_name values(5,'jack',11);
insert into new_tb_name values(6,'jack',110);
rollback; #撤销全部

select *from new_tb_name;

知识点二:python链接mysql

#pip install pymysql


import pymysql

# 连接

db_config={
    "host": "127.0.0.1",
    "port": 3306,
    "user": "jianqi",
    "password": "wmf20030102",
    "db":"test",
}
# 获取链接对象
conn = pymysql.connect(**db_config)
# 创建游标
cur = conn.cursor()

try:
    sql = "insert into Student values ('37','fufu','男',21,'jk')"
    cur.execute(sql)

except Exception as e:
    print(e)
    conn.rollback()

else:
    conn.commit()
finally:
    cur.close()
    conn.close()

知识点二:python链接redis

#pip install redis

import redis

red=redis.StrictRedis(host="127.0.0.1",decode_responses=True)
#string
# red.set("name","捡起")
# ret = red.get("name")

red.append("name"," fufu")
print(red.get("name"))
red.delete("name")
print(red.get("name"))
print(red.exists("name"))

red.mset({"abc":123,"bcd":456})
print(red.mget("abc","bcd"))

red.rename("name","new_name")
print(red.keys())
#list

red.lpush("list_name","g1","g2")
red.lrem("list_name",0,"g2")
print(red.lrange("list_name",0,-1))
print(red.llen("list_name"))

#hash

red.hset("hash_name","name","jianqi")
print(red.hget("hash_name","name"))

red.hmset("hash_name",{"name1":"fufu","name2":"jianqi"})
print(red.hmget("hash_name","name","name1","name2"))

print(red.hgetall("hash_name"))
#set
red.sadd("set_name",1,2,3,1,2)
red.srem("set_name",3)
print(red.smembers("set_name"))

print(red.scard("set_name"))#2
#zset

red.zadd("zzet_name",{'g6':10.2})
print(red.zrange('zzet_name',0,-1))
print(red.zscore('zzet_name','g6'))
print(red.zcard("zzet_name"))
Python语言的数据库交互 在深入探讨如何用Python进行数据库交互之前,我们需要了解一些常见的数据库。 阅读详情

相关推荐

Python与数据库交互的最佳实践

Python与数据库交互是一个常见的任务,特别是在构建Web应用程序或数据分析项目时。psycopg2PyMySQLpymongoDB-APIsqlalchemySQLAlchemyDjango ORMwith当Python与数据库交互时,最佳实践涉及多个方面,包括连接管理、错误处理、参数化查询以及使用ORM等。

apixixi的博客 1254

python学习笔记(三)—数据库篇

数据库编程是指在应用程序中使用数据库管理系统(DBMS)进行数据存储、检索和处理的过程。数据库提供了一种结构化的方式来组织和存储数据,使得数据的管理更加高效和可靠。

majie639的博客 4890

MySQL-python数据库交互实践指南

MySQL-python是一个流行的MySQL数据库访问模块,允许Python脚本执行SQL语句和管理数据库连接。它使用Python DB-API 2.0规范,为数据库操作提供了标准化接口。Python DB-API标准是Python程序员与数据库交互时的规范和协议。本章节主要讲述DB-API规范的核心内容,包括数据库连接和游标、参数化查询以及事务处理等。DB-API(数据库应用程序接口)定义了如何在Python中访问数据库。

weixin_36328210的博客 554

Python MySQL数据库的连接以及基本操作

Python MySQL数据库的连接以及基本操作一、数据库的连接1、直接连接2、连接池连接二、 数据库的基本操作1、执行函数2、创建数据表3、删除表4、插入函数6、删除函数7、状态判断函数8、修改函数查询函数三、全部代码 一、数据库的连接 这里主要介绍python中直接连接MySQL数据库和通过连接池连接数据库的两种连接方式 1、直接连接 直接连接是一种十分基础的连接方式,代码十分简单。DBHOS...

xiaogenggou的博客 3万+

TMS320C6678开发笔记1-6---C6678单核烧写程序

第6节 单核烧写加载程序 6.1节 TI参考文档 参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看 https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29 里面有三个工程: C6678 EVM SPI boot example C6657 EVM ..

kunkliu的博客 5695

usb gadget uvc driver的code分析

uvc的linux driver分为host侧和gadget侧两个driver。host侧的driver在v4l2框架下,而设备侧的driver在usb/gadget文件夹下。gadget侧的uvc driver,利用v4l2框架去注册video_device,向应用层提供调用接口。同时,它完成v4l2 video buffer拷贝到usb request下的buffer下,然后利用uvc实现的协

lintwins的专栏 1万+

Python 与数据库交互

一个 JSON 对象可以包含零个或多个键值对,每个键值对由一个键(字符串)和一个值(可以是字符串、数字、布尔值、对象、数组、null)组成。JSON 数据是一个键值对的集合,类似于 Python 字典。是一种轻量级的数据交换格式,常用于数据的序列化和跨语言传输。在终端输入命令:pip install pymysql。JSON 中的值可以是嵌套的,从而构成复杂的数据结构。值可以是字符串、数字、布尔值、对象、数组、null。在终端输入命令:pip install redis。键名是唯一的,不允许重复。

GitHub质检员 618

MIPI信号的分析--结合示波器实际测试波形

如果排查的思路对你有帮助,请记住 消雨匆匆 or 大吊工。码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。 部分内容来自于此博客的大神总结: http://www.elecfans.com/news/wangluo/20170323499614.html http://www.elecfans.com/yuanqijian/jieko...

消雨匆匆 4万+

Python如何连接数据库,5步教会你 !

Python所有方向的学习路线图,清楚各个方向要学什么东西600多节Python课程视频,涵盖必备基础、爬虫和数据分析100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论爬虫与反爬虫攻防教程包,含15个大型网站迫解超300本Python电子好书,从入门到高阶应有尽有华为出品独家Python漫画教程,手机也能学习历年互联网企业Python面试真题,复习时非常方便。

python03012的博客 1万+

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 571

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2557

python中web应用与mysql数据库交互

7使用数据库 具体使用python的DB-API,这一章里介绍如何编写代码与MYSQL数据库技术交互,这里使用一个通用的数据库API,名为DB-API。 7.1基于数据库的web应用 之前我们把日志数据存放在一个文本文件中,无法得知第六章最开始的请求:已经响应了多少个请求?最常用的字母列表是什么?请求来自哪个IP地址?哪个浏览器用的最多? 现使用mysql数据库存放日志数据: ...

weixin_30294021的博客 1743

HQChart实战教程54:Renko砖形K线图实现详解

Renko图(砖形图)起源于日本,只关注价格变动而忽略时间和成交量因素: 2.2 算法说明 初始化:使用第一根K线的收盘价创建第一个砖块 变动检测:计算当前价格与最后一个砖块的差值 砖块生成: 当价格变动≥砖块大小时,生成新砖块 当价格变动不足时,更新当前砖块的高低价 方向判断:根据价格变动方向确定砖块颜色 三、完整实现代码 四、Renko图的高级应用 4.1 动态砖块大小调整 4.2 Renko交易策略 三砖反转策略:趋势跟踪策略:本文详细介绍了Renko图的实现原理和在HQChart中的应

QQ_778132974的博客 873

10分钟上手db.py:让数据库交互像Python一样简单

你是否还在为繁琐的数据库连接代码而头疼?每次编写SQL查询都要重复处理游标、连接和结果转换?db.py(GitHub加速计划镜像仓库:https://gitcode.com/gh_mirrors/db/db.py)彻底改变了这一切!作为一款开源数据库交互工具,它将Pandas的易用性与SQL的强大功能完美结合,让你用Pythonic的方式轻松操作各类数据库。本文将带你从零开始,掌握db.py的核心...

gitblog_00392的博客 552

YOLOv11 改进策略之 Conv 篇:基于 C2fC 与 RepC_SPELAN4 的性能跃迁教程

某工业质检场景中,采用本文改进模块的 YOLOv11 模型,对微小零件缺陷的检测准确率提升 22%;YOLOv10 提出的 C2fC 模块与 RepC_SPELAN4 结构,是针对特征融合与卷积效率的突破性设计,掌握它们,你就能让自己的 YOLOv11 模型在精度与速度的平衡上实现“质的飞跃”。别再让“模型精度不足”成为你的瓶颈——现在就动手修改代码,让你的 YOLOv11 模型在特征提取与检测效率上实现质的飞跃,用技术实力证明你的 AI 研发能力!中的卷积层为 RepC_SPELAN4。

m0_71589036的博客 97

15、Qt开发中的停靠窗口、工具栏与多文档界面实现

本文详细介绍了Qt开发中停靠窗口、工具栏与多文档界面(MDI)的实现方法。通过QDockWidget和QToolBar构建灵活的用户界面,并利用QMainWindow的saveState和restoreState功能实现布局持久化;使用QMdiArea和QMdiSubWindow实现多文档管理,结合MainWindow与Editor类完成文件操作与窗口控制。文章包含完整代码示例、流程图与表格总结,适用于开发集成环境、文本编辑器等复杂桌面应用。

snow3的博客 163

Python文件操作及数据库交互(Python File Manipulation and Database Interaction)

在开发过程中,文件操作与数据库交互是常见的任务。本文详细介绍了如何使用Python进行文件的读写操作,并展示了如何与SQLite和MySQL数据库进行高效交互。Python通过内置的open()函数轻松实现文件的读取、写入和追加,而使用sqlite3和pymysql等库,开发者能够方便地操作数据库。通过实例,展示了如何将文件数据导入数据库,或将数据库中的数据导出为文件,进一步提升数据处理的效率。

Linux运维老纪的博客 1689

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

db.py:让数据库交互更简单的终极Python工具

db.py是一款让数据库交互变得更简单的Python工具,它强调用户交互、信息展示和提供易于使用的辅助函数,帮助开发者轻松探索数据表、列和视图等。无论是新手还是有经验的开发者,都能通过db.py快速上手数据库操作,极大提升工作效率。 ## 🚀 为什么选择db.py?核心优势解析 db.py之所以能成为开发者的得力助手,源于其多项强大特性: ### 多数据库支持,打破平台限制 db.py支持

gitblog_00987的博客 428

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

db.py:简化数据库交互的Python库

db.py 是由 Yhat 开发的一个开源项目,旨在为数据库交互提供更为便捷的方式。此项目以 Python 为主要编程语言,特别适合那些习惯于使用 pandas 进行数据分析的开发者。它不仅提升了数据库操作的易用性,还完美融合了 IPython Notebook 环境,强调用户体验、数据展示以及方便实用的帮助函数。 ## 核心功能 db.py 的核心魅力在于其能够轻松地探索和管理数据库中的表、列...

gitblog_01198的博客 369

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python和数据库交互

** Python数据库操作 **   对于关系型数据库的访问,Python社区已经指定了一个标准,称为Python Database API SepcificationV2.0.MySQL、Qracle等特定数据库模块遵从这一规范,而且可添加更多特性, 高级数据库API定义了一组用于连接数据库服务器、执行SQL语句并获得结果的函数和对象,其中有两个主要的对象:一个是用于管理数据库连接的Conne...

mino7的博客 367

python写web应用数据库_python中web应用与mysql数据库交互

7使用数据库具体使用python的DB-API,这一章里介绍如何编写代码与MYSQL数据库技术交互,这里使用一个通用的数据库API,名为DB-API。7.1基于数据库的web应用之前我们把日志数据存放在一个文本文件中,无法得知第六章最开始的请求:已经响应了多少个请求?最常用的字母列表是什么?请求来自哪个IP地址?哪个浏览器用的最多?现使用mysql数据库存放日志数据:安装mysql服务器。为Pyt...

weixin_39902608的博客 261

python与mysql数据库交互

这里使用的是pymysql这个库 交互步骤: 1、安装pymysql:pip install pymysql 2、python链接mysql数据库 链接数据库的常用参数。 参数host:mysql服务器所在的主机的ip; 参数user:用户名 参数password:密码 参数port:连接的mysql主机的端口,默认是3306,根据实际情况传入 参数db:连接的数据库名 参数charset:当读取...

ZuiSi的博客 351

python自带的数据库_Python数据库 4.Python与数据库的交互

4.1Python与数据库的交互在没有DB-API之前,各数据库之间的应用接口非常混乱,实现各不相同,如果项目需要更换数据库,基本上需要把所有和数据库相关的代码都进行改动,十分不方便4.2DB-APIDB-API的出现就是为了解决这个问题,python 所有的数据库接口在一定程度上都要遵守python DB-API规范,它定义了一系列的操作数据库的方式,为各种数据库提供了一致的访问接口,项目中更换...

weixin_39581845的博客 241
上一篇: Mongodb
下一篇: python常用模块
WuMingf_
博客等级 码龄4年 209粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值