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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: python报表自动化系列 - 通过Python使用MySQL数据库

通过Python使用MySQL数据库实例

jcLee95的个人博客

邮箱:291148484@163.com

【函数说明】

如调用本函数,必须先安装有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()方法来创建一个游标对象cuisor
    cursor = 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 = 0
    for i in Column_list:
        column =  '`' + i + '`' + ' ' + Datatype_list[count_i] + ','
        new_list.append(column)
        Column_list = new_list
        count_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=1
                                                         DEFAULT 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”,如图所示:

打开该表,如图:

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
12天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
48 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
7天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
28 2
|
9天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
24 3
|
8天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
22 1
|
15天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
13天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
3月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
52 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
3月前
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
47 1
|
3月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
32 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
|
3月前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 函数与内置函数
本文详细介绍了Python中的函数概念,包括自定义函数、参数传递、局部与全局变量,以及内置函数的使用,还扩展了匿名函数、return和yield、exec()、vars()、iter()、map()、zip()、reversed()和sorted()等高级函数和概念。
33 1
Python接口自动化测试框架(基础篇)-- 函数与内置函数