关于pymysql增删改查的基础模板,拿走直接套用

【全栈开发】----用pymysql库连接MySQL,批量存入 PyMySQL` 是一个纯 Python 实现的 MySQL 客户端库,允许开发者通过 Python 程序与 MySQL 数据库进行交互。它遵循 PEP 249(Python 数据库 API 规范 v2.0),提供了与 MySQL 数据库连接、查询和管理的功能。`PyMySQL` 的一大优势在于其不依赖外部 C 库或 MySQL 客户端库,这使得安装和部署更加简便,同时也增强了跨平台兼容性。该库支持多种字符集和编码,并且能够处理复杂的 SQL 操作,如事务、游标和参数化查询等。 阅读详情
# encoding: utf-8
"""
@time: 2021/12/15 15:57
"""
import pymysql

db = pymysql.connect(host="localhost", user="root", port=3306, db="spiders")
cursor = db.cursor()


def create_data():
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
    print("data", data)
    cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER set utf8mb4")
    db.close()


def create_table():
    sql = 'create table if not exists students (id varchar(255) not null,name varchar(255) not null,age int not null, primary key (id))'
    cursor.execute(sql)
    print("crate table")
    db.close()


data = {
    'id': '20120001',
    'name': 'Bob',
    'age': 21
}


def insert_data():
    table = "students"
    keys = ",".join(data.keys())
    values = ','.join(['%s'] * len(data))
    sql = "insert into {table}({keys}) values ({values})".format(table=table, keys=keys, values=values)
    try:
        if cursor.execute(sql, tuple(data.values())):
            print("ok")
            db.commit()
    except:
        print("no")
        db.rollback()
    finally:
        db.close()


def update_data():
    table = "students"
    keys = ",".join(data.keys())
    values = ','.join(['%s'] * len(data))
    sql = "update students set age = %s where name = %s"
    try:
        if cursor.execute(sql, (25, "Bob")):
            print("ok")
            db.commit()
    except Exception as e:
        print("no", e)
        db.rollback()
    finally:
        db.close()


def insert_or_update_data():
    """
    1:ON DUPLICATE KEY UPDATE需要有在INSERT语句中有存在主键或者唯一索引的列,并且对应的数据已经在表中才会执行更新操作。
    而且如果要更新的字段是主键或者唯一索引,不能和表中已有的数据重复,否则插入更新都失败。

    2:不管是更新还是增加语句都不允许将主键或者唯一索引的对应字段的数据变成表中已经存在的数据。
    :return:
    """
    table = "students"
    keys = ",".join(data.keys())
    values = ','.join(['%s'] * len(data))
    insert_sql = "insert into {table}({keys}) value ({values}) on duplicate key update ".format(table=table, keys=keys,
                                                                                                values=values)
    update_sql = ",".join(["{key} = %s".format(key=key) for key in data])
    sql = insert_sql + update_sql
    # insert into students(id,name,age) value (%s,%s,%s) on duplicate key update id = %s,name = %s,age = %s
    try:
        if cursor.execute(sql, tuple(data.values()) * 2):
            print("ok")
            db.commit()
    except Exception as e:
        print("no", e)
        db.rollback()
    finally:
        db.close()


def delete_data():
    table = "students"
    condition = "age > 20"

    sql = "delete from {table} where {condition}".format(table=table, condition=condition)
    try:
        if cursor.execute(sql):
            print("ok")
            db.commit()
    except Exception as e:
        print("no", e)
        db.rollback()
    finally:
        db.close()


def query_data():
    table = "students"
    condition = "age >= 20"

    sql = "select * from {table} where {condition}".format(table=table, condition=condition)
    try:
        if cursor.execute(sql):
            print("ok")
            print('Count:', cursor.rowcount)
            one = cursor.fetchone()  # 查询会导致指针偏移
            print("one", one)
            results = cursor.fetchall()
            print("results", results)
            for row in results:
                print("row", row)
    except Exception as e:
        print("no", e)
    finally:
        db.close()


if __name__ == '__main__':
    # create_data()
    # create_table()
    # insert_data()
    # update_data()
    # insert_or_update_data()
    # delete_data()
    query_data()
    pass

模拟电子课设-半导体直流稳压电源的设计和测试 1、学习直流稳压电源的设计方法; 2、研究直流稳压电源的设计方案; 3、掌握直流稳压电路的调试及主要指标的测试方法。二、设计要求和技术指标 1、设计要求1)、设计一个能输出5V-12V连续可调的直流稳压电源,或±12V的直流稳压电源; 2)、根据设计要求和技术指标设计好电路,选好元件及参数,要求绘出原理图,并用Protel 99SE/DXP画出印制板图; 3)、在万能板或面包板上制作一台直流稳压电源; 4)、测量直流稳压电源的稳压系数; 5)、测量直流稳压电源的内阻; 6)、拟定测试方案和设计步 阅读详情

相关推荐

ENVI SARscape安装全攻略:从下载到汉化一步到位(附最新试用申请链接)

本文提供ENVI SARscape从下载安装到汉化的完整指南,特别针对InSAR(合成孔径雷达干涉测量)分析环境搭建。详细介绍了系统要求、分步安装流程、汉化优化方法及硬件加速配置,并分享数据处理验证和常见问题解决方案,帮助用户高效搭建遥感数据分析平台。

rnn9storyteller的博客 1402

Python学习第五篇:操作MySQL数据库

- 与数据库创建连接 - 获取游标 - 通过游标执行sql语句 - 关闭游标 - 关闭数据库连接

Goodric的博客 495

python爬取巨潮资讯网所有股票年报数据

爬虫获取巨潮资讯网数据

qq_42752524的博客 6110

Python使用MySQL,无记录则插入,有记录则更新 - ON DUPLICATE KEY UPDATE

【代码】Python使用MySQL,无记录则插入,有记录则更新 - ON DUPLICATE KEY UPDATE。

酒酿小圆子呀~ 1885

AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下!

从场景覆盖度来看,AI 浏览器已突破 “网页浏览” 的传统边界,成为连接个人生活、工作、消费的 “超级入口”,这是其他 AI 应用难以比拟的落地优势。在个人生活场景,AI 浏览器可基于用户行为数据主动提供服务 —— 当用户浏览马拉松赛事信息时,浏览器能自动生成 “训练计划 + 装备推荐 + 能量补给方案”,并关联预订链接;在工作场景,Opera Neon 浏览器已实现 “网页内容提取 - 代码生成 - 报告撰写” 的全流程辅助,开发者可直接在浏览器内完成网站开发初稿;

zhang9880000的博客 1086

树莓派计算模块摄像头连接与配置全攻略:从硬件跳线到软件驱动

在嵌入式视觉项目中,摄像头模组的连接与驱动是图像采集和视频分析的基础。其核心原理是通过CSI-2高速串行接口协议传输图像数据,并依赖I2C总线进行传感器寄存器配置。这一技术方案的价值在于为工业控制、机器人等嵌入式设备提供了稳定、高性价比的视觉感知能力。在实际应用中,开发者常面临摄像头无法识别、I2C通信失败等挑战,尤其是在使用树莓派计算模块时,其硬件接口需要通过I/O板引出,配置过程涉及设备树参数调整等关键步骤。本文聚焦于解决这些实际问题,详细拆解了从硬件连接到软件驱动的完整流程,特别是针对CM4、CM3+

weixin_29184075的博客 332

使用Python操作MySQL数据库:插入和更新数据

MySQL是一种流行的关系型数据库管理系统,Python提供了各种库来与MySQL进行交互;如何使用Python来执行插入和更新数据的操作,包括单行插入、批量插入、单行更新和批量更新。

m0_51261262的博客 4513

ISP——坏点矫正(Defective Pixel Correction,DPC)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、出现原因二、坏点分类三、矫正方法动态矫正1.PINTO算法2.梯度法3.DPC和demosaic结合法4.行检测法 一、出现原因 1.感光元件芯片自身工艺技术瑕疵造成以及长期使用造成的瑕疵; 2.光线采集存在缺陷; 二、坏点分类 1.hot pixel: 固定保持较高的像素值,一般呈现为画面高亮的点; 2.dead pixel: 固定保持较低的像素值,一般在画面中呈现为暗点; 3.noise pixel:信号强度随光照呈现的.

qq_41939460的博客 9421

python调用mysql执行duplicate简单例子

#!/usr/bin/python import MySQLdb db=MySQLdb.connect("localhost","root","openos","python") cur=db.cursor() try: sql="""INSERT INTO A (ID,NAME) VALUES (112,'%s') ON DUPLICATE KEY UPDATE NAME=VALUES(

Frank AK 851

Python量化交易:主流回测框架Backtrader入门详解

Python量化交易框架Backtrader入门指南 Backtrader是一个功能强大的Python量化回测框架,可以帮助交易者专注于策略逻辑而非基础设施。本文介绍了Backtrader的核心架构和使用方法: 框架优势:自动处理订单执行、手续费、滑点、仓位管理等复杂问题,采用事件驱动模式接近真实交易场景。 核心组件: Cerebro:控制中心 Strategy:交易策略 Data Feed:数据输入 Broker:模拟经纪商 Indicators:技术指标 使用流程: 安装:pip install bac

Science prince的博客 935

第10章: MMU notifier与HMM的协作

本文摘要: HMM(Heterogeneous Memory Management)是Linux内核提供的异构内存管理框架,用于统一CPU与设备(如GPU、DSP等)的内存访问。它通过镜像页表技术实现虚拟地址空间共享,自动同步CPU和设备页表变化,支持透明的内存迁移和设备内存管理。HMM构建在mmu_interval_notifier机制上,利用序列号检测页表修改冲突,提供高效并发控制。核心数据结构包括hmm_range和HMM PFN标志位,通过hmm_range_fault()实现页表遍历和缺页处理。

图形/计算GPU的驱动与虚拟化技术分享园地 3088

access update语句执行_用pymysql实现对多行数据的insert和update加速

摘要本文对pymysql操作MySQL,insert和update的速度优化测试对比。对于insert操作来说,“一个事务处理多行的方式”比“一个事务处理一行的方式”插入相同的数据快了313倍,即插入2000个记录,一个事务一行的方式需要30.99秒,优化方式仅需要0.099秒。MySQL原始语法是支持对insert语句一次插入多行记录,即insert into table_name values...

weixin_39771969的博客 636

VTK-9.5.0 1D2D3DWidget实现灰度图+深度图+3D点云显示(可轻松集成到自己的项目)

VTK1D2D3DWidget是一个基于Qt和VTK开发的3D点云可视化工具,支持RGB和深度点云数据的显示与处理。主要功能包括点云加载、可视化、保存为PLY格式文件,以及背景颜色、点间隔、坐标轴显示等参数的自定义设置。该工具采用模块化设计,核心组件包括主窗口管理类、VTK渲染组件和自定义鼠标交互样式,依赖Qt5+和VTK9.5.0库实现跨平台支持。项目提供完整的源码和构建指南,适用于点云数据的快速展示与分析。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 385

利用Python的pymysql模块实现MySQL数据库“模板类型表”的增删改查

需求:利用Python实现MySQL数据“模板类型表"的增删改查 分析: 1.何为模板类型表 创建模板类型表: create table `alteration_type` ( `create_time` datetime default null, `update_time` datetime default null, `id` int(11) not null auto_increment, `name` varchar(64) not null comment '类型名称'

lilygg的博客 839

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

用PyMySQL快速搭建一个数据管理后台

模块化设计:将功能划分为独立的模块,比如数据库操作、业务逻辑、路由控制等。这样不仅便于开发,也方便后续扩展。错误处理:对数据库操作和用户输入做好充分的错误处理,避免原型程序频繁崩溃。性能考虑:虽然原型阶段不必过度优化,但也要注意避免明显的性能问题,比如N+1查询问题。UI反馈:即使是原型,也要提供足够的操作反馈,比如成功提示、错误提示等,这有助于改善用户体验。

ThunderstormLynx23的博客 903

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python 操作 MySQL 零基础实战:PyMySQL 全套增删改查(防 SQL 注入 + 完整工程化模板)

本文面向 Python 入门新手,提供一套规范可落地的 PyMySQL 数据库开发模板。包含 pymysql 环境部署校验、连接封装、字典游标、自动资源释放、事务管控、参数化防 SQL 注入六大工程化规范;附带完整 CRUD 增删改查代码示例,配套原理讲解与常见报错排查方案,模板可直接用于小型项目开发,兼顾数据安全性与程序健壮性。

2501_92426010的博客 418

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

flask mysql pymysql_Flask中通过PyMySQL模块让操作mysql数据库方法(一)

基本思路新建一个 config.py文件用于存放数据库连接信息,将对数据库操作封装成一个类在app.py文件的路由中,设置好查询语句,调用查询语句,将查询结果通过参数反馈给模板文件在模板文件中,使用循环显示内容具体操作1、环境搭建在建新项目中导入PyMySQL模块,如上图所示2、引用及config.py文件在config.py文件中导入pymysql模块,同时将对数据的增删改查操作封装成一个类im...

weixin_28347369的博客 524

python模块pymysql对数据库进行增删改查(1),2024年最新字节面试编程

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84140734的博客 846

pymysql连接mysql指定端口_用Python操作MySQL(pymysql)

用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql)。连接MySQL:importpymysqlconnect=pymysql.connect(host='localhost',user='root',password='xxxx',port=3306)注:此时还未创建数据库,如已创建数据库,在连接时需再加上一个参数db。注:host为指定的连接服...

weixin_33561910的博客 8983

pymysql语法_pymysql模块使用教程

一、操作数据库模板pymysql是Python中操作mysql的模块,(使用方法几乎和MySQLdb相同,但是在Python3中,mysqldb这个库已经不能继续使用了)下载安装方法:方法一、在cmd中输入下面的命令即可下载:pip3 install pymysql方法二、在pycharm集成开发环境中进行安装模块:File-->Settings-->Project:xxx-->...

weixin_39725873的博客 488

Flask中通过PyMySQL模块让操作mysql数据库

具体操作 1、环境搭建 安装pymysql 2、引用及config.py文件 在config.py文件中导入pymysql模块,同时将对数据的增删改查操作封装成一个类 import pymysql DB_CONFIG = { “host”: “127.0.0.1”, “port”: 3306, “user”: “root”, “passwd”: “123456”, “db”: “world”, “charset”: “utf8” } class SQLManager(object): # 初始化实例方法 d

weixin_45722313的博客 6780

基于Pymysql的数据库的增删改查模版(3)——更新

文章目录基于Pymysql的数据库的增删改查模版(3)——更新环境Mysql更新操作语法数据库更新:类模版实现初始化更新事务基本框架更新指定记录完整代码调用示例 基于Pymysql的数据库的增删改查模版(3)——更新 最近在利用Pymysql进行数据库交互时,为了提高程序的可扩展性,实现了一套基本的数据库查询、插入、更新、删除模版,记录下来供日后使用 ps:考虑到文章的独立阅读性,保持了一些重复的内容 环境 Mysql 5.7.2 理论上对于数据库版本没有特殊要求 pymsql 0.9.3 pytho

M010K的博客 472

python mysql pymysql_用Python操作MySQL(pymysql)

用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql)。连接MySQL:importpymysqlconnect=pymysql.connect(host='localhost',user='root',password='xxxx',port=3306)注:此时还未创建数据库,如已创建数据库,在连接时需再加上一个参数db。注:host为指定的连接服...

weixin_39547298的博客 305

用Python操作MySQL(pymysql)

用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql)。 连接MySQL: import pymysql connect=pymysql.connect(host='localhost',user='root',password='xxxx',port=3306) 注:此时还未创建数据库,如已创建数据库,在连接时需再加...

weixin_30732825的博客 165

基于Pymysql的数据库的增删改查模版(4)——删除

文章目录基于Pymysql的数据库的增删改查模版(4)——删除环境Mysql删除操作语法数据库删除:类模版实现初始化更新事务基本框架更新指定记录完整代码调用示例 基于Pymysql的数据库的增删改查模版(4)——删除 最近在利用Pymysql进行数据库交互时,为了提高程序的可扩展性,实现了一套基本的数据库查询、插入、更新、删除模版,记录下来供日后使用 ps:考虑到文章的独立阅读性,保持了一些重复的内容 环境 Mysql 5.7.2 理论上对于数据库版本没有特殊要求 pymsql 0.9.3 pytho

M010K的博客 545
上一篇: js一些参数
下一篇: 关于python爬虫调用js时如何实现debug的骚操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值