前言
本文将为大家介绍如何使用Python向腾讯云TDSQL-C Serverless中添加文章标题和作者名称。TDSQL-C Serverless是腾讯云最新推出的一款全新产品,它可以自动扩缩容,无需手动管理,让用户更加专注于业务开发。而Python作为一门高级编程语言,已经成为了数据科学和人工智能领域中最受欢迎的编程语言之一。本文将结合实际案例,详细阐述如何使用Python连接数据库,读取数据并进行分析的步骤和注意事项。希望通过本文的介绍,读者们可以更好地掌握TDSQL-C Serverless与Python的应用,进一步提升数据分析的能力。
TDSQL-C Serverless产品介绍
TDSQL-C是腾讯云自研的新一代云原生关系型数据库,它整合了传统数据库、云计算和新硬件技术的优势。主要特点包括:
- 兼容性:TDSQL-C完全兼容MySQL,用户可以无缝迁移已有的MySQL应用到TDSQL-C上,无需修改代码。
- 弹性和高性能:TDSQL-C具备极致的弹性和高性能,能够支持超过百万的QPS(每秒查询率)。
- 高可用和高可靠:TDSQL-C通过分布式架构和自动数据备份机制,实现了高可用性和高可靠性,确保数据的安全和可靠性。
- 安全性:TDSQL-C提供了多种安全措施,包括连接加密、访问控制、安全审计等,保障数据的安全性。
不仅如此,TDSQL-C还实现了PB级的海量分布式智能存储和Serverless秒级伸缩功能,为企业加速完成数字化转型提供了强大的支持。
针对Serverless服务,它是TDSQL-C MySQL版的无服务器架构版本,完全基于Serverless架构,提供按实际计算和存储资源使用量计费的方式,通俗来说就是和水电费一样,用多少花多少钱,这意味着我们只需按实际使用的资源付费,避免了闲置资源的浪费,同时也使更多人受益。
物料准备
点击链接进入官网选择产品, 如下图所示 点击立即选购
TDSQL 数据库配置选择
配置选择如下
- 实例形态 **(Serverless) **
- 数据库引擎 ** (MYSQL) **
- 地域 (北京) **地域这里根据自己的实际情况选择即可 **
- 主可用区 (北京三区) **主可用区这里根据自己的实际情况选择即可 **
- 多可用区部署 **(否) **
- 传输链路
- 网络
- Serverless架构 单节点版
- 数据库版本 (MySQL5.7)
- 算力配置 最小(0.25) , 最大(0.5)
- 自动暂停 , 根据自己需求配置即可
- 计算计费模式 (按量计费)
- 存储计费模式 (按量计费)
详细配置如下图所示
立即购买
选择好配置后点击 下一步 , 继续配置完成后点击立即购买
集群创建
创建集群需要一点时间 这里我们需要耐心等待哦!!
开启外网
当集群创建完成之后,需要打开外网链接如下图所示
创建tdsql 连接
如下面代码所示 创建数据库连接, 其中主机名, 端口, 账户以及密码和 database(数据库名称) 我们需要自己配置一下哦!!
# MySQL数据库连接配置
db_config = {
'host': "xxx", # 主机名
'port': xxx, # 端口
'user': "xxx", # 账户
'password': "xxx", # 密码
'database': 'xxxx',
}
excel 数据
如下图所示, 我们将 excel 中的标题 , 链接 ,内容, 作者, 发布日期 写入到数据库中 , 数据来源于
csdn
中秋专辑征文哦!!
创建一个读取excel 文件的函数
代码如下所示
def read_excel(excel_file):
# 打开excel
excel = openpyxl.load_workbook(excel_file)
# 选择工作薄-选择第一个
sheet = excel.worksheets[0]
# 创建一个空列表
data_list = []
# 将excel 中第二行开始的数据读取出来
for row in sheet.iter_rows(min_row=2, values_only=True):
data_list.append(row)
print(data_list)
# #调用函数写入数据库
return write_db(data_list)
查看打印效果
�
创建一个函数, 将数据写入数据库
代码如下
def write_db(data_list):
# 创建一个数据库连接
conn = pymysql.connect(**db_config)
# 创建一个游标
cursor = conn.cursor()
# 执行创建表的操作, 如果表已经存在, 则不执行
cursor.execute("create table if not exists cardlist(title varchar(2550), author varchar(20))")
# 提交事务
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
# 调用函数写入数据库
return write_db_data(data_list)
def write_db_data(data_list):
# 创建一个数据库连接
conn = pymysql.connect(**db_config)
# 创建一个游标
cursor = conn.cursor()
# 执行写入操作, 将 cursor.execute("create table if not exists cardlist(title varchar(20), link varchar(20), content varchar(20) , author varchar(20), pushtime varchar(20) , authorlink varchar(20))")写入到数据库
for data in data_list:
print(data)
cursor.execute("insert into cardlist(title, author) values(%s, %s)", data)
print(data)
print('写入成功')
# 提交事务
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
return data_list
代码解释
write_db(data_list)
函数首先创建一个数据库连接,并创建一个游标对象来执行SQL语句。- 接下来,函数执行一个创建表的操作语句(
create table if not exists cardlist(title varchar(2550), author varchar(20))
),如果表已经存在,则不执行创建表的操作。 - 然后,函数提交数据库事务,关闭游标和数据库连接。
- 最后,函数调用
write_db_data(data_list)
函数,将数据列表传递给它,并返回其结果。
write_db_data(data_list)
函数用于将数据列表写入数据库。
- 函数创建一个数据库连接,并创建一个游标对象来执行SQL语句。
- 接下来,函数使用循环遍历数据列表中的每个元素,并执行插入数据的操作(
insert into cardlist(title, author) values(%s, %s)
),将数据插入到名为cardlist
的表中。 - 在每次执行插入操作之前,函数会打印出当前的数据内容,以及插入成功的提示信息。
- 最后,函数提交数据库事务,关闭游标和数据库连接,然后返回数据列表。
## 入口函数执行
if __name__ == '__main__':
read_excel('output.xlsx')
数据库写入内容
如图所示我们成功将excel 中的 文章标题和 作者写入到了 数据库中
完整代码
import openpyxl
from docxtpl import DocxTemplate
import pymysql
# MySQL数据库连接配置
db_config = {
'host': "xxxxx", # 主机名
'port': xxx, # 端口
'user': "xxxx", # 账户
'password': "xxxx", # 密码
'database': 'xxxxx',
}
# 创建一个读取excel 文件的函数
def read_excel(excel_file):
# 打开excel
excel = openpyxl.load_workbook(excel_file)
# 选择工作薄-选择第一个
sheet = excel.worksheets[0]
# 创建一个空列表
data_list = []
# 将excel 中第二行开始的数据读取出来
for row in sheet.iter_rows(min_row=1, values_only=True):
data_list.append((row[0], row[3]))
print(row[0], '----', row[3])
# print(data_list)
# #调用函数写入数据库
return write_db(data_list)
# 创建一个函数, 将数据写入数据库
def write_db(data_list):
# 创建一个数据库连接
conn = pymysql.connect(**db_config)
# 创建一个游标
cursor = conn.cursor()
# 执行创建表的操作, 如果表已经存在, 则不执行
cursor.execute("create table if not exists cardlist(title varchar(2550), author varchar(20))")
# 提交事务
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
# 调用函数写入数据库
return write_db_data(data_list)
#
def write_db_data(data_list):
# 创建一个数据库连接
conn = pymysql.connect(**db_config)
# 创建一个游标
cursor = conn.cursor()
# 执行写入操作, 将 cursor.execute("create table if not exists cardlist(title varchar(20), link varchar(20), content varchar(20) , author varchar(20), pushtime varchar(20) , authorlink varchar(20))")写入到数据库
for data in data_list:
print(data)
cursor.execute("insert into cardlist(title, author) values(%s, %s)", data)
print(data)
print('写入成功')
# 提交事务
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
return data_list
if __name__ == '__main__':
read_excel('output.xlsx')
总结
通过上述讲解 我们可以成功的将excel 数据成功的写入到数据库中, 同时我们也可以将其进行扩展如 读取数据 对数据进行分析等, 综上可以看出相较于传统的数据库服务,TDSQL-C Serverless可以根据实际需求自动扩缩容,避免了资源浪费和配置繁琐的问题。