1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python报表自动化系列 - 通过Python使用MySQL数据库

python报表自动化系列 - 通过Python使用MySQL数据库

时间:2021-02-13 10:41:02

相关推荐

python报表自动化系列 - 通过Python使用MySQL数据库

通过Python使用MySQL数据库实例

李俊才

邮箱:291148484@

【函数说明】

如调用本函数,必须先安装有MySQL数据库软件,并已经建立了某个数据库,然后方可使用本函数对已经建立好的数据库创建一个新的表。

[参数]:

host:主机名,或者是网络中主机的IP地址,对于本地主机,为’localhost’user:用户名,在生产环境不建议直接使用root用户password:对于与用户名的密码;db:已经建立好的某数据库名;table_name:需要创建的表名;Column_list:列名称的列表;Datatype_list:所有列的数据类型列表;primary_key:对应SQL的PRIMARY KEY,约束唯一标识数据库表中的每条记录。主键必须包含唯一的值,主键列不能包含 NULL 值,每个表都应该有一个主键,并且每个表只能有一个主键。

【代码实现】

import pymysql#给指定主机上的某数据库创建表def creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key):connection = pymysql.connect(host = host,user = user,password = password,db = db,charset = 'utf8', #字符编码)#使用cursor()方法来创建一个游标对象cuisorcursor = connection.cursor()SQL_DROP = "DROP TABLE IF EXISTS " + table_name#使用execute()方法执行SQL_DROP,如果表存在则删除cursor.execute(SQL_DROP)SQL_CREAT_TABLE = 'EATE TABLE ' + '`' + table_name + '`' + '('new_list = []count_i = 0for i in Column_list:column = '`' + i + '`' + ' ' + Datatype_list[count_i] + ','new_list.append(column)Column_list = new_listcount_i = count_i + 1#通过字符串拼接实现可以用于MySQL执行的SQL语句SQL_CREAT_TABLE = 'CREATE TABLE ' + '`' + table_name + '`' + ' ' + '(\n'for i in Column_list:SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + i + '\n'SQL_CREAT_TABLE = SQL_CREAT_TABLE + ' ' + 'PRIMARY KEY (' + primary_key + ')'SQL_CREAT_TABLE = SQL_CREAT_TABLE + '\n' + ')ENGINE=MyISAM AUTO_INCREMENT=1DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;'#执行创建表语句cursor.execute(SQL_CREAT_TABLE)#关闭与数据库的连接connection.close()#返回值是用来调试被用于创建表的SQL语句,建议使用print()函数查看return str(SQL_CREAT_TABLE)

【调用实例】

#定义调用参数Column_list = ['Time','Normal Drop (000)','No Chute Assignment (001)','Recirculation Exceeded (002)','Unknown Piece / Bad Load (003)','Multiple Barcodes (004)','No Sort Instruction (005)','Other Reasons (006)','VCS Timeout (008)','VCS Reject (009)','No Reads (010)','MES Reject (011)','Total']Datatype_list = ['int(35) NOT NULL AUTO_INCREMENT','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL','int(5) NULL']host = 'localhost'user = 'root'password = 'root'db = 'as01'table_name = 'Thtoughput'primary_key = 'Time'#调用函数creat_MySQL_table(host, user, password, db, table_name, Column_list, Datatype_list, primary_key)

打开数据库图形化管理工具Navicat查看,可以发现在数据库“as01”(调用前已经创建好)中生成了一个表“Throughput”,如图所示:

打开该表,如图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。