【腾讯云 TDSQL-C Serverless 产品体验】 使用 Python 向 TDSQL-C 添加读取数据 实现词云图

news2024/11/23 22:21:13

文章目录

  • 前言
  • 学到什么?
  • 准备工作
    • 申请TDSQL数据库
      • 1. 点击登录腾讯云
      • 2. 点击立即选购 ,如下图所示
      • 3. 选购页面中的数据库配置选项如下
      • 4. 基础信息
      • 5. 配置完成后点击 右下角的立即购买即可
      • 6. 点击立即购买后会有弹窗如下, 再次点击
      • 7. 购买完成后 , 会出现弹窗 , 点击`前往管理页面`
      • 8. 读写实例这里 点击`开启外部`
      • 9. 创建并授权即可
  • 数据准备
    • 创建项目工程
  • 链接 `TDSQL`
    • 创建数据库
    • 函数模块
      • 读取词频excel
        • 代码讲解
      • 创建表
        • 代码讲解
      • 保存数据到`tdsql`
        • 代码讲解
      • 读取`tdsql` 数据
        • 代码讲解
      • 代码调用
        • 代码讲解
      • 完整代码
      • 注意
  • 运行代码
  • 删除`TDSQL`
  • 资源下载
  • 总结

前言

TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容 MySQL 5.7、8.0。实现超百万级 QPS 的高吞吐,最高 PB 级智能存储,保障数据安全可靠。
TDSQL-C MySQL 版采用存储和计算分离的架构,所有计算节点共享一份数据,提供秒级的配置升降级、秒级的故障恢复,单节点可支持百万级 QPS,自动维护数据和备份,最高以GB/秒的速度并行回档。
TDSQL-C MySQL 版既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、高效迭代的优势。TDSQL-C MySQL 版引擎完全兼容原生 MySQL,您可以在不修改应用程序任何代码和配置的情况下,将 MySQL 数据库迁移至 TDSQL-C MySQL 版引擎。

本篇文章我们将一步一步的实现 使用 Python 向 TDSQL-C 添加读取数据 实现词云图

学到什么?

  1. 如何申请TDSQL数据库:包括登录腾讯云、选购配置、购买和管理页面等相关步骤。
  2. 创建项目工程、连接TDSQL数据库、创建数据库等内容。
  3. 涉及读取词频Excel、创建表、保存数据到TDSQL、读取TDSQL数据等相关代码的讲解。
  4. python 相关的知识等

准备工作

申请TDSQL数据库

1. 点击登录腾讯云

腾讯云地址

2. 点击立即选购 ,如下图所示

在这里插入图片描述

3. 选购页面中的数据库配置选项如下

**注意 **:这里的实例形态我们选择Serverless

 - 实例形态   **(Serverless)**
 -  数据库引擎 **(MYSQL)**
 - 地域  **(北京)**  *地域这里根据自己的实际情况选择即可* 
 - 主可用区 **(北京三区)**   *主可用区这里根据自己的实际情况选择即可* 
 - 多可用区部署 **(否)**
 - 传输链路 
 - 网络
 - 数据库版本 **(MySQL5.7)**
 - 算力配置 **最小(0.25) , 最大(0.5)**
 - 自动暂停 **根据自己需求配置即可**
 - 计算计费模式 **(按量计费)**
 - 存储计费模式 **(按量计费)**

我的配置截图如下:

在这里插入图片描述

4. 基础信息

配置这里我们直接设置自己的密码 以及 表名大小写不敏感即可 , 如下图所示
在这里插入图片描述

5. 配置完成后点击 右下角的立即购买即可

6. 点击立即购买后会有弹窗如下, 再次点击

在这里插入图片描述

7. 购买完成后 , 会出现弹窗 , 点击前往管理页面

在这里插入图片描述

8. 读写实例这里 点击开启外部

在这里插入图片描述

9. 创建并授权即可

在这里插入图片描述

至此我们的准备工作就完成了, 其实还是蛮简单的哦!

数据准备

所需数据 如下

  • 词频
  • 背景图
  • 字体文件

下载地址放在文末有需要的可以去下载哦!

创建项目工程

工程目录如下
在这里插入图片描述

讲解说明:

  1. 文件中的词云图文件夹 做为生成图片的存储路径
  2. background.png 作为词云图背景图
  3. 字体文件则是词云图的字体展示
  4. 词频是数据支撑
  5. wordPhoto.py 为脚本文件

链接 TDSQL

打开数据库读写实例 找到相关配置 如图

在这里插入图片描述

# MySQL数据库连接配置
db_config = {
    'host': "XXXXXX",  # 这里填写你自己申请的外部主机名
    'port': xxxx,   # 这里填写你自己申请的外部的端口
    'user': "root",  # 账户
    'password': "",  # 密码就是你自己创建实例时的密码
    'database': 'tdsql', # 这里需要自己在自己创建的`tdsql`中创建数据库 , 

}

创建数据库

  1. 如图点击登录按钮 , 登录到我们创建的数据库中
    在这里插入图片描述
  2. 进入数据库点击新建库
    在这里插入图片描述
  3. 点击新建数据库, 出现弹窗
    在这里插入图片描述
  4. 在弹窗中的 数据库名称中写入你喜欢的数据库名称即可 ,这里我们用的是 tdsql , 作为数据库名称 , 填写好数据库名称后,点击确定创建即可
    在这里插入图片描述
  5. 列表中出现我们创建的数据库名称后 , 就表示创建好了 , 我们就可以开始代码编写了哦!
    在这里插入图片描述

函数模块

读取词频excel


def excelTomysql():
    path = '词频'  # 文件所在文件夹
    files = [path + "/" + i for i in os.listdir(path)]  # 获取文件夹下的文件名,并拼接完整路径
    for file_path in files:
        print(file_path)
        filename = os.path.basename(file_path)
        table_name = os.path.splitext(filename)[0]  # 使用文件名作为表名,去除文件扩展名
        # 使用pandas库读取Excel文件
        data = pd.read_excel(file_path, engine="openpyxl", header=0)  # 假设第一行是列名
        columns = {col: "VARCHAR(255)" for col in data.columns}  # 动态生成列名和数据类型

        create_table(table_name, columns)  # 创建表
        save_to_mysql(data, table_name)  # 将数据保存到MySQL数据库中,并使用文件名作为表名
        print(filename + ' uploaded and saved to MySQL successfully')


代码讲解

  1. 设置文件夹路径为’词频’,将该路径赋值给变量 path
  2. 使用os.listdir()函数获取文件夹下的所有文件名,并拼接完整路径,存储到列表 files 中。
  3. 使用 for 循环遍历 files 列表中的每个文件路径,并打印出文件路径。
  4. 使用 os.path.basename() 函数获取文件名,并将文件名赋值给变量 filename
  5. 使用 os.path.splitext() 函数获取文件名的扩展名,并通过索引操作去除扩展名部分,得到表名,并将表名赋值给变量 table_name
  6. 使用 pandas 库的 read_excel() 函数读取 Excel 文件,并将数据存储到变量 data 中。在读取过程中,使用 openpyxl 引擎,并假设第一行是列名。
  7. 使用字典推导式生成一个字典 columns,其中字典的键为数据的列名,值为 “VARCHAR(255)” 数据类型。
  8. 调用 create_table() 函数,以 table_namecolumns 作为参数,创建一个对应的表。
  9. 调用 save_to_mysql() 函数,以 datatable_name 作为参数,将数据保存到 MySQL 数据库中,并使用文件名作为表名。
  10. 打印出文件名加上 ’ uploaded and saved to MySQL successfully’ 的提示信息。

创建表


def create_table(table_name, columns):
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 组装创建表的 SQL 查询语句
    query = f"CREATE TABLE IF NOT EXISTS {table_name} ("
    for col_name, col_type in columns.items():
        query += f"{col_name} {col_type}, "
    query = query.rstrip(", ")  # 去除最后一个逗号和空格
    query += ")"

    # 执行创建表的操作
    cursor.execute(query)

    # 提交事务并关闭连接
    conn.commit()
    cursor.close()
    conn.close()
    

代码讲解

  1. 建立与MySQL数据库的连接,连接参数通过变量 db_config 提供。
  2. 创建一个光标对象 cursor,用于执行SQL语句。
  3. 组装创建表的SQL查询语句。首先,在SQL查询语句中插入表名 table_name。然后,通过 for 循环遍历 columns 字典中的每个键值对,分别将列名和数据类型添加到SQL查询语句中。
  4. 去除SQL查询语句末尾的最后一个逗号和空格。
  5. 添加右括号,完成SQL查询语句的组装。
  6. 使用光标对象 cursor 执行创建表的操作,执行的SQL语句为组装好的查询语句。
  7. 提交事务,将对数据库的修改持久化。
  8. 关闭光标和数据库连接。

代码中使用了 pymysql 模块来建立MySQL数据库连接,并通过编写SQL语句来执行创建表的操作。具体的数据库连接参数在 db_config 变量中提供,而 columns 参数则是由之前的代码生成的一个字典,包含了表的列名和数据类型。

保存数据到tdsql


def save_to_mysql(data, table_name):
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 将数据写入MySQL表中(假设数据只有一个Sheet)
    for index, row in data.iterrows():
        query = f"INSERT INTO {table_name} ("
        for col_name in data.columns:
            query += f"{col_name}, "
        query = query.rstrip(", ")  # 去除最后一个逗号和空格
        query += ") VALUES ("
        values = tuple(row)
        query += ("%s, " * len(values)).rstrip(", ")  # 动态生成值的占位符
        query += ")"
        cursor.execute(query, values)

    # 提交事务并关闭连接
    conn.commit()
    cursor.close()
    conn.close()

代码讲解

  1. 建立与MySQL数据库的连接,连接参数通过变量 db_config 提供。
  2. 创建一个光标对象 cursor,用于执行SQL语句。
  3. 对于数据中的每一行,使用 for 循环迭代,获取索引和行数据。
  4. 组装插入数据的SQL查询语句。首先,在SQL查询语句中插入表名 table_name。然后,通过 for 循环遍历数据的列名,将列名添加到SQL查询语句中。
  5. 去除SQL查询语句末尾的最后一个逗号和空格。
  6. 添加右括号,完成SQL查询语句的组装。
  7. 使用 tuple(row) 将行数据转换为元组类型,并将值占位符 %s 动态生成相应数量的占位符。
  8. 将值的占位符添加到SQL查询语句中。
  9. 使用光标对象 cursor.execute() 执行SQL查询语句,将查询语句中的占位符替换为实际的行数据。
  10. 提交事务,将对数据库的修改持久化。
  11. 关闭光标和数据库连接。

读取tdsql 数据

 
def query_data():
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 查询所有表名
    cursor.execute("SHOW TABLES")
    tables = cursor.fetchall()

    data = []
    dic_list = []
    table_name_list = []
    for table in tables:
        # for table in [tables[-1]]:
        table_name = table[0]
        table_name_list.append(table_name)
        query = f"SELECT * FROM {table_name}"
        # # 执行查询并获取结果
        cursor.execute(query)
        result = cursor.fetchall()
        if len(result) > 0:
            columns = [desc[0] for desc in cursor.description]
            table_data = [{columns[i]: row[i] for i in range(len(columns))} for row in result]
            data.extend(table_data)
        dic = {}
        for i in data:
            dic[i['word']] = float(i['count'])
        dic_list.append(dic)

    conn.commit()
    cursor.close()
    conn.close()
    return dic_list, table_name_list

代码讲解

  1. 建立与MySQL数据库的连接,连接参数通过变量 db_config 提供。
  2. 创建一个光标对象 cursor,用于执行SQL语句。
  3. 使用 cursor.execute() 执行SQL查询语句 "SHOW TABLES",获取所有表名。
  4. 使用 cursor.fetchall() 获取查询结果,将结果存储在变量 tables 中。
  5. 创建空列表 datadic_listtable_name_list,用于存储查询结果的数据、字典和表名。
  6. 对于每个表名 table,通过 for 循环迭代,获取表名并添加到 table_name_list 中。
  7. 构建查询该表所有数据的SQL语句,并使用 cursor.execute() 执行该查询语句。
  8. 使用 cursor.fetchall() 获取查询结果,将结果存储在变量 result 中。
  9. 如果查询结果 result 的长度大于0,则说明有数据,进行以下操作:
    • 使用 cursor.description 获取查询结果的列名列表,并将列名存储在变量 columns 中。
    • 使用列表推导式和字典推导式,将查询结果的每一行转换为字典,并将字典存储在变量 table_data 中。
    • table_data 添加到 data 列表中。
  10. 根据 data 中的结果构建字典,并将字典存储在变量 dic 中。
  11. dic 添加到 dic_list 列表中。
  12. 提交事务,将对数据库的修改持久化。
  13. 关闭光标和数据库连接。
  14. 返回 dic_listtable_name_list

代码调用


if __name__ == '__main__':
    excelTomysql()
    result_list, table_name_list = query_data()
    for i in range(len(result_list)):
        maskImage = np.array(Image.open('background.PNG'))  # 定义词频背景图
        # 定义词云样式
        wc = wordcloud.WordCloud(
            font_path='PingFangBold.ttf', # 设置字体
            mask=maskImage,  # 设置背景图
            max_words=800,  # 最多显示词数
            max_font_size=200)  # 字号最大值
        # 生成词云图
        wc.generate_from_frequencies(result_list[i])  # 从字典生成词云
        # 保存图片到指定文件夹
        wc.to_file("词云图/{}.png".format(table_name_list[i]))
        print("生成的词云图【{}】已经保存成功!".format(table_name_list[i] + '.png'))
        plt.imshow(wc)  # 显示词云
        plt.axis('off')  # 关闭坐标轴
        plt.show()  # 显示图像

代码讲解

  1. 使用 Image.open() 打开名为 ‘background.PNG’ 的背景图,并将其转换为NumPy数组,存储在变量 maskImage 中,作为词云的背景图。
  2. 创建一个 WordCloud 对象 wc,设置字体路径、背景图、最多显示词数和字号最大值等参数。
  3. 使用 wc.generate_from_frequencies()result_list[i] 的字典数据生成词云图。
  4. 使用 wc.to_file() 将生成的词云图保存为文件,文件名为 “词云图/{}.png”,其中 {} 表示对应的表名。
  5. 打印输出生成的词云图文件名。
  6. 使用 plt.imshow() 显示词云图。
  7. 使用 plt.axis('off') 关闭坐标轴的显示。
  8. 使用 plt.show() 显示图像。

完整代码

import pymysql
import pandas as pd
import os
import wordcloud
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

# MySQL数据库连接配置
db_config = {
    'host': "XXXXXX",  # 这里填写你自己申请的外部主机名
    'port': xxxx,   # 这里填写你自己申请的外部的端口
    'user': "root",  # 账户
    'password': "",  # 密码就是你自己创建实例时的密码
    'database': 'tdsql', # 这里需要自己在自己创建的`tdsql`中创建数据库 , 

}


def create_table(table_name, columns):
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 组装创建表的 SQL 查询语句
    query = f"CREATE TABLE IF NOT EXISTS {table_name} ("
    for col_name, col_type in columns.items():
        query += f"{col_name} {col_type}, "
    query = query.rstrip(", ")  # 去除最后一个逗号和空格
    query += ")"

    # 执行创建表的操作
    cursor.execute(query)

    # 提交事务并关闭连接
    conn.commit()
    cursor.close()
    conn.close()


def excelTomysql():
    path = '词频'  # 文件所在文件夹
    files = [path + "/" + i for i in os.listdir(path)]  # 获取文件夹下的文件名,并拼接完整路径
    for file_path in files:
        print(file_path)
        filename = os.path.basename(file_path)
        table_name = os.path.splitext(filename)[0]  # 使用文件名作为表名,去除文件扩展名
        # 使用pandas库读取Excel文件
        data = pd.read_excel(file_path, engine="openpyxl", header=0)  # 假设第一行是列名
        columns = {col: "VARCHAR(255)" for col in data.columns}  # 动态生成列名和数据类型

        create_table(table_name, columns)  # 创建表
        save_to_mysql(data, table_name)  # 将数据保存到MySQL数据库中,并使用文件名作为表名
        print(filename + ' uploaded and saved to MySQL successfully')


def save_to_mysql(data, table_name):
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 将数据写入MySQL表中(假设数据只有一个Sheet)
    for index, row in data.iterrows():
        query = f"INSERT INTO {table_name} ("
        for col_name in data.columns:
            query += f"{col_name}, "
        query = query.rstrip(", ")  # 去除最后一个逗号和空格
        query += ") VALUES ("
        values = tuple(row)
        query += ("%s, " * len(values)).rstrip(", ")  # 动态生成值的占位符
        query += ")"
        cursor.execute(query, values)

    # 提交事务并关闭连接
    conn.commit()
    cursor.close()
    conn.close()


def query_data():
    # 建立MySQL数据库连接
    conn = pymysql.connect(**db_config)
    cursor = conn.cursor()
    # 查询所有表名
    cursor.execute("SHOW TABLES")
    tables = cursor.fetchall()

    data = []
    dic_list = []
    table_name_list = []
    for table in tables:
        # for table in [tables[-1]]:
        table_name = table[0]
        table_name_list.append(table_name)
        query = f"SELECT * FROM {table_name}"
        # # 执行查询并获取结果
        cursor.execute(query)
        result = cursor.fetchall()
        if len(result) > 0:
            columns = [desc[0] for desc in cursor.description]
            table_data = [{columns[i]: row[i] for i in range(len(columns))} for row in result]
            data.extend(table_data)
        dic = {}
        for i in data:
            dic[i['word']] = float(i['count'])
        dic_list.append(dic)

    conn.commit()
    cursor.close()
    conn.close()
    return dic_list, table_name_list


if __name__ == '__main__':
    excelTomysql()
    result_list, table_name_list = query_data()
    for i in range(len(result_list)):
        maskImage = np.array(Image.open('background.PNG'))  # 定义词频背景图
        # 定义词云样式
        wc = wordcloud.WordCloud(
            font_path='PingFangBold.ttf', # 设置字体
            mask=maskImage,  # 设置背景图
            max_words=800,  # 最多显示词数
            max_font_size=200)  # 字号最大值
        # 生成词云图
        wc.generate_from_frequencies(result_list[i])  # 从字典生成词云
        # 保存图片到指定文件夹
        wc.to_file("词云图/{}.png".format(table_name_list[i]))
        print("生成的词云图【{}】已经保存成功!".format(table_name_list[i] + '.png'))
        plt.imshow(wc)  # 显示词云
        plt.axis('off')  # 关闭坐标轴
        plt.show()  # 显示图像

注意

运行代码前 引入相关的包哦!


pip install pymysql
pip install pandas
pip install wordcloud
pip install numpy
pip install pillow
pip install matplotlib

运行代码

写入截图

在这里插入图片描述

数据库数据截图

在这里插入图片描述

生成词云图

在这里插入图片描述

将词云图存入到文件夹
在这里插入图片描述

删除TDSQL

体验完成, 考虑到当前这个业务没必要继续开启数据库了, 防止无效计费, 所以删除一下

如图点击销毁按钮

在这里插入图片描述
出现销毁实例的弹窗, 点击确定即可

在这里插入图片描述

资源下载

资源在百度盘里 自取哦 !

链接: https://pan.baidu.com/s/1hClOJI07HUuGBQ2SwZfWjw 提取码: 5mm9
–来自百度网盘超级会员v7的分享

总结

使用TDSQL 时你会发现, 真的是无缝接入, 非常的丝滑, 当然也有些不足,希望可以改进哦!!

优点

  1. 腾讯云数据库 TDSQL整体使用和感受还是很好的,操作比较简单,通过简单的官方文档就是搭建成功,其次性价比很高,尤其对于初学者新手 ,
  2. 与传统的数据库相比,TD-SQL Serverless的计费方式更为灵活,按照实际使用的资源进行付费,避免了长期运行服务器的成本。同时,它也可以在空闲时自动休眠,减少不必要的费用。

缺点

  1. 由于TD-SQL Serverless会在请求到达时才进行资源的分配和启动,因此在首次请求时可能会有一定的延迟。对于一些对实时性要求较高的应用场景,延迟可能会影响用户体验。
  2. 相比于传统的数据库,TD-SQL Serverless提供的配置和优化选项较少,用户对底层资源的控制能力有限。这可能会导致一些特定的需求无法满足。
  3. 虽然TD-SQL Serverless可以根据需求自动扩展计算资源,但高并发流量可能会导致较高的成本。如果在短时间内存在大量的并发请求,可能需要支付额外费用。

注意 这个三个缺点我只是根据经验进行猜想, 如有错误还请及时指正哦!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SD卡相关资料

STM32429I-EVAL1 正点原子 ALIENTEK探索者STM32F4、ALIENTEK战舰STM32F1 V3 野火 野火STM32F103-V2霸道 中科蓝汛 AB5322B QFN32内部软开关蓝牙音箱

ppt怎么转pdf文件?这几种方法搞定

ppt怎么转pdf文件?将ppt转为pdf可以让你更方便地分享你的演示文稿,无论你的观众使用的是什么设备或操作系统,他们都可以轻松地查看你的演示文稿。此外,将ppt转为pdf还可以防止其他人修改你的文稿,保证了你的演示文稿的…

Vue-打印组件页面

场景: 需要将页面的局部信息打印出来&#xff0c;只在前端实现&#xff0c;不要占用后端的资源。经过百度经验&#xff0c;决定使用 print-js和html2canvas组件。 1. 下载包 npm install print-js --save npm install --save html2canvas 2. 组件内引用 <script>impo…

解决 Mac 上使用 Electron Updater 更新 App 不成功的问题!!!

文章目录 1. 现象2. 分析并如何解决3. 后续 1. 现象 在Mac电脑上&#xff0c;使用Electron Updater对程序进行更新&#xff0c;但是一直不成功&#xff0c;也不报错。具体表现是这样的&#xff1a;当前我的程序版本是3.11版本&#xff0c;点击更新之后&#xff0c;也下载了&am…

16.2.3 【Linux】离线管理问题

要注意的是&#xff0c;我们在工作管理当中提到的“背景”指的是在终端机模式下可以避免 [crtl]-c 中断的一个情境&#xff0c; 你可以说那个是 bash 的背景&#xff0c;并不是放到系统的背景去。所以&#xff0c;工作管理的背景依旧与终端机有关。在这样的情况下&#xff0c;如…

近期关于开展微信小程序备案的通知,西米支付来教大家微信小程序如何备案

微信小程序备案步骤&#xff1a; 登录微信公众平台&#xff1a; 使用你的微信公众号管理员账号登录微信公众平台。 选择小程序管理&#xff1a; 在左侧菜单中选择“小程序”进行管理。 进入小程序设置&#xff1a; 选择你要备案的小程序&#xff0c;进入小程序管理页面。 填…

Hyper-V 虚拟机网络慢的原因及解决方案参考

Hyper-V VM 上的网络性能不佳 有几次我遇到过这样一种情况&#xff0c;即从运行Windows Server 的Hyper-V主机上的虚拟机复制文件的速度要慢得多。在本文中&#xff0c;我尝试描述几种不同的方法来提高在Windows Server &#xff08;以及最新的Windows 10和11版本&#xff09;上…

S7-200 SMART 通信端口以及连接方式

每个S7-200 SMART CPU都提供一个以太网端口和一个RS485端口(端口0)&#xff0c;标准型CPU额外支持SB CM01信号板(端口1)&#xff0c;信号板可通过STEP 7-Micro/WIN SMART软件组态为RS232通信端口或RS485通信端口。 CPU 通信端口引脚分配 1.S7-200 SMART CPU 集成的 RS485 通信…

seata server 1.6版本安装及配置

文章目录 下载安装并启动数据库导入数据库修改配置文件 服务注册配置中心手动添加脚本导入 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Seata 是一款开源的分布式事务解决方案&#…

QT报表Limereport v1.5.35编译及使用

1、编译说明 下载后QT CREATER中打开limereport.pro然后直接编译就可以了。编译后结果如下图&#xff1a; 一次编译可以得到库文件和DEMO执行程序。 2、使用说明 拷贝如下图编译后的lib目录到自己的工程目录中。 release版本的重新命名为librelease. PRO文件中配置 QT …

c语言每日一练(7)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…

Oracle常用基础知识

整体介绍 SQL语言是一种数据库语言 1、DDL&#xff1a;数据定义语言 create-创建 drop-删除 alter-修改 rename-重命名 truncate-截断 2、DML&#xff1a;数据操作语句 insert-插入 delete-删除 update-更新 select-查询 3、DCL&#xff1a;数据控制语句 grant-授权 rev…

c++字符串函数

在 C 中有大量用于操作 C-style 字符串的函数&#xff0c;它们集成在头文件 <cstring> 中。其常见的函 函数作用strcpy(s1,s2) 复制字符串 s2 到 s1strcat(s1,s2) 将字符串 s2 连接到 s1 末尾strlen(s) 计算字符串 s 长度strcmp(s1,s2) 比较字符串 s1 和 s2 …

deepin 深度操作系统正式适配苹果 M1 芯片

导读近日消息&#xff0c;据深度操作系统官方消息&#xff0c;在已经发布的 deepin V23 beta 版本中&#xff0c;深度操作系统正式适配 Apple Mac mini M1 了。 官方表示&#xff0c;Mac mini M1 是苹果于 2020 年 11 月发布的迷你电脑主机&#xff0c;它搭载了最高 3.2GHz …

走进知识图谱(三)【世界知识图谱篇】其他的知识表示学习模型

除了上篇文章介绍到的基于复杂关系建模的知识表示方法&#xff0c;我们还有多种基于平移模型而改进的知识图谱知识表示方法&#xff0c;并且它们都是对关系的深入建模。可以将它们归为两类&#xff0c;分别是知识图谱结构建模和知识图谱多源信息融合建模。这也对应了之前说的&a…

Mac远程桌面连接软件 Jump Desktop 8

Jump Desktop是一款功能强大的远程桌面连接软件&#xff0c;可让您从任何地方远程访问和控制您的计算机或服务器。它提供了快速、安全和可靠的远程连接&#xff0c;使您能够轻松访问您的文件、应用程序和数据&#xff0c;无论您身在何处。 以下是Jump Desktop的一些主要特点和功…

【图像分类】理论篇(3)交叉熵损失函数的理解与代码实现

理论公式 计算实例 图像分类实例&#xff1a; 我们希望根据图片动物的轮廓、颜色等特征&#xff0c;来预测动物的类别&#xff0c;有三种可预测类别:猫、狗、猪。假设我们当前有两个模型&#xff08;参数不同)&#xff0c;这两个模型都是通过sigmoid/softmax的方式得到对于每个…

又有大动作!美的集团计划在港交所上市,推进全球化布局

撰稿|行星 来源|贝多财经 8月9日&#xff0c;美的集团&#xff08;SZ:000333&#xff09;发布《关于研究论证重大事项的公告》&#xff0c;称其正在对境外发行证券&#xff08;H股&#xff09;并上市事项进行前期论证。若能成功发行&#xff0c;美的集团将实现“AH”两地上市…

用Python做一个滑雪小游戏

游戏是让人娱乐和放松的好方式&#xff0c;而编写和玩自己的游戏则是一种特别有趣的体验。在本文中&#xff0c;我们将使用Python和pygame库来创建一个简单的滑雪小游戏。通过这个小游戏项目&#xff0c;我们将学习如何使用Python编程语言来制作自己的游戏&#xff0c;并且享受…

timeout limit is 100 seconds错误

使用SERVER 2019进行开发&#xff0c;出现100秒超时的问题&#xff0c; Load operation failed for query GetDOC_STAFFWithPhoto. The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing 解决办法&#xff1a; 方法一&#xff1a;浏览…