前提置要:想要写一个方法,这个方法是插入数据到数据表的方法,只需要提供表名称,字段名称,还有插入的值,只要调用这个方法就可以自动帮助你插入数据

以下是不断实践优化出来

原本的插入数据库中的代码应该是这样的:

insert into ty_test_info(name, age) VALUES ("wq",23)
#*args的用法:当传入的参数个数未知,且不需要知道参数名称时。

在写代码之前就在想,有没有一种参数(传入的时候并不知道参数名称),传入参数的时候把所有表的字段名称写上,然后那边可以返回一个元组,替代上面(name,age)的,还真的就有一个*key,这种参数可以传入多个,然后返回的是一个元组

def test(a,b,c=3,*args):
print(a)
print(b)
print(c)
print(args)
test(11,22,33,44,55)

输出的值为

11
22
33
(44,55)
**kargs的用法:当传入的参数个数未知,但需要知道参数的名称时(立马想到了字典,即键值对)
def test(**kwargs):
print(kwargs)
keys = kwargs.keys()
value = kwargs.values()
print(keys)
print(value) test(a=1,b=2,c=3,d=4) # 输出值分别为
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# dict_keys(['a', 'b', 'c', 'd'])
# dict_values([1, 2, 3, 4])
因为后面需要把要插入的数据写出来(“wq”,23),那么怎么样能够显示成这样呢.
kwargs.values()把所有的value值读取出来,先放到list里,然后把list转换成tupple这样就可以了

下面是这个方法:

def insertData(db,cursor,tablename,*key,**kwargs):# *key返回的是元组(),**返回的是字典
values = []
for value in kwargs.values():
values.append(value)
print(tuple(values))
sql = 'insert into {} {}'.format(tablename,key).replace("'","")+' VALUES {}'.format(tuple(values))
print(sql)
try:
cursor.execute(sql)
db.commit()
print("成功添加数据")
print("插入数据的ID:",cursor.lastrowid)
except Exception as e:
print(e)
# 发生错误时候回滚
db.rollback()
insertData(db,cur,"ty_test_info","name","age",name = "xw",age = 18)

python 定义一个插入数据(可以插入到每个表中)通用的方法的更多相关文章

  1. 用Python实现一个大数据搜索引擎

    用Python实现一个大数据搜索引擎 搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家 ...

  2. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  3. 定义一个共享数据块DB1 在DB1中定义一个数组 用程序 访问数据里面的某一个成员或者地址连续的成员

    提纲 : 定义一个共享数据块 DB1 在DB1 中定义数组 用SFC21 实现 实现全部数组元素的赋一样的值 实现 给数组中的某一个元素赋值 实现 对数组中的全部元素赋值 实现将数组中的某个 或者 某 ...

  4. 完成代码将x插入到该顺序有序线性表中,要求该线性表依然有序

    #include <stdio.h> #include <malloc.h> int main(void) { int i, n; double s = 1.3; double ...

  5. JAVA 之 每日一记 之 算法( 给定一个正整数,返回它在 Excel 表中相对应的列名称。 )

    题目: 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -& ...

  6. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  7. 将DataFrame数据如何写入到Hive表中

    1.将DataFrame数据如何写入到Hive表中?2.通过那个API实现创建spark临时表?3.如何将DataFrame数据写入hive指定数据表的分区中? 从spark1.2 到spark1.3 ...

  8. 此文本文件包含的数据无法放置在一个工作表中 gb2312

    excel导入csv,csv要从unicode转为gb2312, 否则提示:此文本文件包含的数据无法放置在一个工作表中

  9. python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)

    今天在尝试用下面的python代码对MySQL进行数据的插入.更新和删除时, 突然发现代码执行成功, 通过代码查询也显示数据已经插入或更新, 但是当我在MySQL客户端通过SQL语句查询时, 数据库中 ...

随机推荐

  1. 【FishFX】花式撩骚,打造TypeScript易用框架。

    · 栗子入手 假设有以下foo数组,数组中每个对象都拥有id,name两个属性,现在需要查找id > 0的对象数量. const foo: Array<{ id: number, name ...

  2. 2019-2020-1 20199328《Linux内核原理与分析》第一周作业

    Windows和Linux在收费方面,软件知识方面,安全性.使用习惯.可定制性上以及应用范畴上都有所不同,UNIX/Linux操作系统下的Shell既是用户交互的界面,也是控制系统的脚本语言,其中Ub ...

  3. Linux网络管理员:网络概论

    1.TCP/IP网络 包是适合通过网络传输的一小段数据,交换发生于网络的每一个链接点.当不同来源的包必须经过同一条线路传输数据时,这些包将被交替传输. 2.TCP/IP协议组 TCP/IP协议簇是In ...

  4. Scala教程之:函数式的Scala

    文章目录 高阶函数 强制转换方法为函数 方法嵌套 多参数列表 样例类 比较 拷贝 模式匹配 密封类 单例对象 伴生对象 正则表达式模式 For表达式 Scala是一门函数式语言,接下来我们会讲一下几个 ...

  5. 使用3种协议搭建本地yum仓库

    关闭防火墙和selinux [root@qls yum.repos.d]# systemctl stop firewalld (stop,start,disable,enable) [root@qls ...

  6. WLAN 无线网络 03 - RF 基础

    射频(Radio frequency),又称无线电频率.无线射频.高周波,常被用来当成无线电的同义词,为在3 kHz至300 GHz这个范围内的震荡频率,这个频率相当于无线电波的频率,以及携带着无线电 ...

  7. Linux / mac OS Shell常用命令

    一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示文件属性,包括大小,日期,符号连接,是否可 ...

  8. 有关for循环的一些东西

    有的时候,不知道是因为学的有点浅显,还是脑袋有点懵,简单的循环语句都有点被绕糊涂了. 这种内外循环的,先是外循环一次,内循环全部,接着再外循环第二次,内循环全部,,,,,,,. 所以先是显示 0 4 ...

  9. IOS抓取与反抓取

    目录 IOS抓取基础知识 IOS抓取方式 iOS破解 模拟器 黑雷苹果模拟器 介绍 局限 改机软件 常用改机软件 检测 可更改属性 注入与Hook(越狱下实现作弊) 注入方式 Hook方式 重打包(非 ...

  10. checked 完整版全选,单选,反选

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel= ...