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

以下是不断实践优化出来

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

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. 使用dynamic和MEF实现轻量级的AOP组件 (2)

    转摘 https://www.cnblogs.com/niceWk/archive/2010/07/21/1782092.html 偷梁换柱 上一篇我们初试了DynamicAspect这把小刀,如果你 ...

  2. 挑战全网最幽默的Vuex系列教程:第六讲 Vuex的管理员Module(实战篇)

    写在前面 这一讲是 Vuex 基础篇的最后一讲,也是最为复杂的一讲.如果按照官方来的话,对于新手可能有点难以接受,所以想了下,决定干脆多花点时间,用一个简单的例子来讲解,顺便也复习一下之前的知识点. ...

  3. ajaxReturn案例

    请查看:http://www.cnblogs.com/bushe/p/4625097.html 不用自己写json格式啦,直接拿这个用就可以啦

  4. curl请求本地域名问题

    curl在本地虚拟机上请求本地接口时候,出现域名解析问题,换为ip即可,可用curl_error() 或者curl_errno来调试: vue单个文件在引入时候自己的逻辑js文件一定要放在html后引 ...

  5. Adobe Flash player 过期

    完美解决问题的办法,在百度中输入 "adobe flash player debugger",如图进入官网 选择对应操作系统的对应版本,下载安装,重启浏览器,一切ok IE内核浏览 ...

  6. Zabbix3.4安装部署

    Zabbix3.4安装部署 一.系统环境 cat /etc/redhat-release  CentOS Linux release 7.3.1611 (Core)  关闭防火墙及selinux sy ...

  7. MySQL数据库的套接字文件和pid文件

    MySQL数据库的套接字文件和pid文件 socket文件:当用Unix域套接字方式进行连接时需要的文件. pid文件:MySQL实例的进程ID文件. MySQL表结构文件:用来存放MySQL表结构定 ...

  8. 图论--二分图最佳完美匹配(KM模板)

    #include <iostream> #include <cstring> #include <cstdio> using namespace std; cons ...

  9. MySQL命令3

    连接 mysql -u username -p 查看进程 SHOW processlist

  10. Face The Right Way 开关(POJ3276)

    描述: \( N 头牛排成了一列.每头牛或者向前或者向后.为了让所有的牛都面向前方,农夫约翰买了 一台自动转向的机器. 这个机器在购买时就必须设定一个数值 K,机器每操作一次恰好使 K 头连续的牛转向 ...