当前位置: 首页 > news >正文

【clickhouse】 使用 SQLAlchemy 连接 ClickHouse 数据库的完整指南


我听见有人猜
你是敌人潜伏的内线
和你相知多年
我确信对你的了解
你舍命救我画面
一一在眼前浮现
司空见惯了鲜血
你忘记你本是娇娆的红颜
感觉你我彼此都那么依恋
                     🎵 许嵩《内线》


ClickHouse 是一款非常高效的开源列式数据库,因其在处理大规模数据时的高性能和低延迟而广受欢迎。对于使用 Python 进行数据分析和处理的开发者而言,SQLAlchemy 是一个非常流行的数据库抽象层,可以用于连接和操作各种数据库。在这篇博客中,我们将介绍如何使用 SQLAlchemy 连接 ClickHouse 数据库,并展示一些基本的查询操作。

1. 为什么选择 SQLAlchemy 连接 ClickHouse?

SQLAlchemy 是 Python 中一个非常流行的 ORM(对象关系映射)框架,通常用于与数据库进行交互。相比于直接编写 SQL 语句,SQLAlchemy 提供了更高层次的抽象,支持多种数据库,并且可以灵活地生成 SQL 查询。通过 SQLAlchemy,我们可以更加优雅地与数据库交互,编写可维护、可扩展的代码。

虽然 ClickHouse 本身有许多客户端和 API 接口可供使用,但通过 SQLAlchemy 进行连接可以将 ClickHouse 与现有的 Python 数据库交互代码无缝集成,尤其在你使用多个数据库时会更加方便。

2. 安装所需库

要使用 SQLAlchemy 连接 ClickHouse,需要安装以下几个 Python 库:

SQLAlchemy:用于与数据库进行高层次的交互。
ClickHouse SQLAlchemy:这是 SQLAlchemy 的 ClickHouse 方言库。
ClickHouse-Connect(或其他驱动):这是用于与 ClickHouse 通信的 Python 驱动。
在终端中使用以下命令来安装这些依赖项:

pip install sqlalchemy
pip install clickhouse-sqlalchemy
pip install clickhouse-connect

3. 连接 ClickHouse 数据库

ClickHouse 使用的是 HTTP 或 TCP 协议,因此连接 ClickHouse 时,我们可以选择 HTTP 端点或 TCP 端点。为了与 SQLAlchemy 配合使用,我们使用 clickhouse-sqlalchemy 库,它支持通过 SQLAlchemy 的连接字符串格式连接 ClickHouse。

3.1 基本的连接字符串格式

SQLAlchemy 使用统一的数据库 URI 连接格式,ClickHouse 也遵循类似的格式。以下是 ClickHouse 的基本连接字符串格式:

from sqlalchemy import create_engine# ClickHouse 数据库的连接字符串格式
CLICKHOUSE_URI = 'clickhouse+http://<username>:<password>@<host>:<port>/<database>'

其中:
username: ClickHouse 用户名,通常是 default。
password: 用户密码。
host: ClickHouse 服务器的地址。
port: ClickHouse 服务器使用的端口(默认 HTTP 端口是 8123)。
database: 要连接的 ClickHouse 数据库名称。

3.2 创建数据库引擎

使用 SQLAlchemy 的 create_engine() 函数来创建连接引擎。引擎是与数据库交互的基础对象。

以下是一个完整的示例,展示如何使用 SQLAlchemy 创建到 ClickHouse 的连接:

from sqlalchemy import create_engine# 定义连接字符串
CLICKHOUSE_URI = 'clickhouse+http://default:@localhost:8123/default'# 创建 SQLAlchemy 引擎
engine = create_engine(CLICKHOUSE_URI)# 测试连接
with engine.connect() as connection:result = connection.execute("SELECT version()")for row in result:print(f"ClickHouse 版本: {row[0]}")

在这个例子中,default:@localhost:8123/default 表示我们正在使用默认用户(没有密码),连接到本地运行的 ClickHouse 实例,默认数据库是 default。

4. 使用 SQLAlchemy 进行基本操作

创建完引擎之后,我们可以使用 SQLAlchemy 提供的各种方法来进行数据库操作,例如查询、插入、更新和删除数据。

4.1 查询数据

我们可以使用 SQLAlchemy 的 execute() 方法来执行任意 SQL 查询。比如,执行一个简单的 SELECT 查询,获取 ClickHouse 表中的数据:

# 假设有一个 `users` 表,查询其中的数据
with engine.connect() as connection:result = connection.execute("SELECT * FROM users LIMIT 5")for row in result:print(row)

在这个示例中,我们查询了 users 表中的前 5 条记录,并打印出结果。

4.2 插入数据

通过 execute() 方法,你也可以直接执行 INSERT 语句,向 ClickHouse 中插入数据。注意,ClickHouse 是一个列式数据库,通常不支持逐行插入,但在特定情况下(如小批量插入)可以进行插入操作。

insert_query = """
INSERT INTO users (id, name, age) VALUES
(1, 'Alice', 30),
(2, 'Bob', 24)
"""with engine.connect() as connection:connection.execute(insert_query)print("数据插入成功")
4.3 创建表

SQLAlchemy 也可以用来创建表结构,以下是一个简单的表创建示例:

from sqlalchemy import Table, Column, Integer, String, MetaData# 定义表结构
metadata = MetaData()users_table = Table('users', metadata,Column('id', Integer, primary_key=True),Column('name', String),Column('age', Integer)
)# 创建表
metadata.create_all(engine)
print("表 `users` 创建成功")

在这个例子中,我们定义了一个 users 表,并通过 metadata.create_all() 创建该表。

5. ORM 模式操作

SQLAlchemy 还支持使用 ORM(对象关系映射)模式与数据库交互。通过定义 Python 类,我们可以将数据库表映射为对象,并使用面向对象的方式操作数据库。

5.1 定义 ORM 模型

以下是定义一个 ORM 模型的例子:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String# 创建 ORM 基类
Base = declarative_base()# 定义一个 User 类,对应数据库中的 users 表
class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String)age = Column(Integer)# 创建数据库中的表
Base.metadata.create_all(engine)
5.2 插入数据(ORM)

我们可以通过创建对象的方式插入数据:

from sqlalchemy.orm import sessionmaker# 创建会话
Session = sessionmaker(bind=engine)
session = Session()# 创建新用户
new_user = User(id=3, name='Charlie', age=29)# 添加并提交
session.add(new_user)
session.commit()
5.3 查询数据(ORM)

使用 ORM 模式查询数据也非常简单,像操作对象一样查询:

# 查询用户
users = session.query(User).filter_by(age=29).all()
for user in users:print(user.name)

6. 性能与优化

ClickHouse 是一个专为大数据设计的高性能数据库,使用 SQLAlchemy 与 ClickHouse 交互时,需要注意以下几点以保持性能:

批量操作:ClickHouse 更适合批量插入和查询数据,避免逐行操作。
并行执行:ClickHouse 支持并发查询,利用 SQLAlchemy 的连接池或并行库可以加速数据访问。
使用合适的驱动:clickhouse-connect 驱动性能较好,适用于高并发和大数据量的场景。

7. 总结

通过 clickhouse-sqlalchemy 和 SQLAlchemy 的结合,Python 开发者可以非常方便地连接并操作 ClickHouse 数据库。无论是通过 SQLAlchemy 的核心查询功能,还是 ORM 模式,SQLAlchemy 都能为你的 ClickHouse 项目提供强大的数据库抽象层。对于那些需要处理大量数据的应用,ClickHouse 与 SQLAlchemy 的结合能够提升开发效率,简化数据库操作的复杂度。

你可以根据需要扩展你的爬取任务、分析任务或其他大数据应用程序,借助 ClickHouse 强大的性能和 SQLAlchemy 的灵活性,构建高效的数据处理管道。

相关文章:

【clickhouse】 使用 SQLAlchemy 连接 ClickHouse 数据库的完整指南

我听见有人猜 你是敌人潜伏的内线 和你相知多年 我确信对你的了解 你舍命救我画面 一一在眼前浮现 司空见惯了鲜血 你忘记你本是娇娆的红颜 感觉你我彼此都那么依恋 &#x1f3b5; 许嵩《内线》 ClickHouse 是一款非常高效的开源列式数据库&#xff0c;因…...

按键收集单击,双击和长按

按键收集单击,双击和长按 引言 在我们生活中, 按键是必不可少的, 不同的电器, 有不同的按键, 但是按键总有不够用的时候, 那么给与一个按键赋予不同的功能,就必不可少了. 一个按键可以通过按下的时间长短和频次, 来定义其类型。 一次按键收集&#xff0c; 都是在一个按键收集周…...

进程的异常终止

进程的异常终止 进程收到了某些信号&#xff0c;他杀 进程自己调用abort函数&#xff0c;产生了SIGABRT(6)信号&#xff0c;自杀 进程的最后一个线程收到了"取消"操作&#xff0c;并且做出响应 如果进程是异常结束的&#xff0c;atexit\on_exit它们事先注册的遗言…...

并发编程 | Future是如何优化程序性能

在初识Future一文中介绍了Future的核心方法。本文中接着介绍如何用Future优化我们的程序性能。 在此之前&#xff0c;有必要介绍Future接口的一个实现类FutureTask。 FutureTask介绍 FutureTask继承结构 首先我们看一下FutureTask的继承结构&#xff1a; public class Futur…...

Oracle笔记

一、 如何解决 sqlplus 无法使用退格键和方向键 .bashrc 中添加如下内容&#xff0c;解决 退格键 stty erase ^h 安装 rlwap 后&#xff0c;执行如下命令可解决 方向键 rlwap sqlplus 二、 都有哪些备份数据到工具 三、 谈谈 你对 oracle 中实例和数据库的理解 数据库是一…...

LVS+Keepalived 双机热备

LVSKeepalived 双机热备 Keepalived案例分析Keepalived工具介绍Keepalived工具介绍一、功能特点 一、理解Keepalived实现原理实验报告资源列表一、安装keepalived以及ipvsadm Keepalived案例分析 企业应用中&#xff0c;单台服务器承担应用存在单点故障的危险单点故障一旦发生…...

Web Image scr图片从后端API获取基本实现

因系统开发中需求&#xff0c;会有页面显示图片直接从后端获取后显示&#xff0c;代码如下&#xff1a; 后端&#xff1a; /*** 获取图片流* param response* param fileName*/RequestMapping(value"getImgStream",method RequestMethod.GET)public void getImgStr…...

2024音频剪辑指南:探索四大高效工具!

音频剪辑不仅仅是技术活&#xff0c;更是一种艺术创作&#xff0c;它能够让声音更加生动、更具感染力。今天&#xff0c;我们就来探索几款优秀的音频剪辑工具。 福昕音频剪辑 链接&#xff1a;www.pdf365.cn/foxit-clip/ 福昕音频剪辑是一款界面简洁、操作直观的音频编辑软件…...

“CSS”第一步——WEB开发系列13

CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档&#xff08;如 HTML 文档或 XML 应用&#xff09;添加样式&#xff08;字体、间距和颜色等&#xff09;的计算机语言&#xff0c;CSS 文件扩展名为 .css。 一、什么是 CSS&a…...

IEEE802网络协议和标准

IEEE802网络协议和标准 802委员会IEEE 802介绍现有标准 IEEE 802.3介绍物理媒介类型MAC子层与LLC子层主要内容通讯标准POE供电标准802.3af、802.3at、802.3btIEEE802.3af的工作过程&#xff1a;IEEE802.3af主要供电参数&#xff1a;IEEE802.3af的分级参数&#xff1a;为什么会有…...

vulnhub靶机 DC-9(渗透测试详解)

一、靶机信息收集 1、靶机下载 https://download.vulnhub.com/dc/DC-9.zip 2、靶机IP扫描 3、探测靶机主机、端口、服务版本信息 4、靶机目录扫描 二、web渗透测试 1、访问靶机IP 查看页面功能点&#xff0c;发现一个搜索框和登录框 2、测试一下是否存在sql注入 查看当前数…...

javaweb的新能源充电系统pf

TOC springboot339javaweb的新能源充电系统pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域…...

如何在桌面同时展示多个窗口

一、实现2分屏显示 win箭头 二、实现3分屏显示 1. 在实现2分屏显示的基础上&#xff0c;再次点击箭头图标&#xff0c;这次选择屏幕的上方或下方。 2. 点击后&#xff0c;第三个窗口将会出现在你选择的区域。现在&#xff0c;你可以在三个窗口之间自由切换&#xff0c;提高工…...

The Sandbox 游戏制作教程(第 5 部分):创建基于分类的系统

欢迎回到我们的系列&#xff0c;我们将记录 The Sandbox Game Maker 的 “On-Equip”&#xff08;装备&#xff09;功能的多种用途。 如果你刚加入 The Sandbox&#xff0c;装备功能是 “可收集组件”&#xff08;Collectable Component&#xff09;中的一个多功能工具&#x…...

HTML浏览器缓存(Browser Cache)

介绍&#xff1a; 浏览器缓存是Web缓存中最直接、最常见的一种形式。当浏览器首次请求某个资源时&#xff0c;如果服务器响应中包含了缓存控制指令&#xff08;如Cache-Control、Expires等&#xff09;&#xff0c;浏览器就会将这些资源存储在本地缓存中。后续请求相同资源时&a…...

短剧APP系统,推动短剧市场发展

近年来&#xff0c;短剧作为一直火爆的新兴行业&#xff0c;凭借着剧情进奏、爽、时长短等优势&#xff0c;深受大众欢迎&#xff0c;成为了大众碎片化时间的解压神器。 目前&#xff0c;随着短剧市场的快速发展&#xff0c;各个类型的短剧层出不穷&#xff0c;也推动了短剧AP…...

嵌入式 | 嵌入式 Linux 系统使用摄像头

点击上方"蓝字"关注我们 01、引言 >>> 在嵌入式 Linux 系统使用摄像头 俗话说“眼见为实”,这或许是为什么近年来摄像头在嵌入式系统上快速增长的原因。它们被用于不同的场景,如: 远程监控:典型的例子是闭路电视,监控人员在监视环境(或许你所在的大楼…...

C 开源库之cJSON

cJSON简介 CJSON库是一个用于解析和生成JSON数据的C语言库。 它提供了一组函数&#xff0c;使得在C语言中操作JSON数据变得简单而高效。 您可以使用CJSON库来解析从服务器返回的JSON数据&#xff0c;或者将C语言数据结构转换为JSON格式以进行传输。 cJSON 使用 官网地址&…...

ROW_NUMBER(), RANK(), DENSE_RANK() SQL排序函数图文详解

ROW_NUMBER(), RANK(), DENSE_RANK() ROW_NUMBER(): 为结果集中的每一行分配唯一的连续编号。即使有重复的值&#xff0c;ROW_NUMBER() 也会为它们分配不同的序号。 SELECT column_name, ROW_NUMBER() OVER (ORDER BY column_name) AS row_num FROM table_name;2. RANK(): 对结…...

Spring IoCDI(下)—DI的尾声

我们之前学习了控制反转IoC&#xff0c;接下来就开始学习依赖注入DI的细节。 依赖注入是一个过程&#xff0c;是指IoC容器在创建Bean时&#xff0c;去提供运行时所依赖的资源&#xff0c;而资源指的就是对象。我们使用 Autowired 注解&#xff0c;完成依赖注入的操作。简单来说…...

仕考网:考外省公务员可以调回本地吗?

一般情况下&#xff0c;公务员岗位是固定不可随意更换的&#xff0c;因为每个职位都对应特定的职责和要求。一旦考到外地的岗位&#xff0c;想要调回本地几乎是不可能的。因为这样的操作可能导致职位空缺&#xff0c;进而需要通过公共招聘流程来填补&#xff0c;而不是简单地从…...

《工厂模式在软件开发中的深度剖析与应用》

工厂模式 在软件开发的领域中&#xff0c;设计模式充当着解决常见问题的高效且可复用的策略角色。其中&#xff0c;工厂模式作为创建对象的重要设计模式&#xff0c;具有不可小觑的应用价值。接下来&#xff0c;我们将深入探讨简单工厂模式、工厂方法模式和抽象工厂模式。 一…...

双向通信之Websocket

介绍 Websocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP协议不同&#xff0c;websocket允许客户端与服务器之间的双向通信&#xff0c;可以在同一条连接上进行多次消息的快速传递。我之前在做一个线上刷题网站的时候&#xff0c;需要设计一个社区讨论模块&am…...

git学习使用碰到的问题1

本来在B站上看到的关于stash的使用时视频末尾讲到git stash drop 编号 会删除暂存记录 确实也是这么回事&#xff0c;但是末尾说到git stash pop 编号时up主说在恢复工作进度的时候我们可以直接删除掉这个工作记录可以直接使用 git stash pop stash{0} 使用完以后却出现了如上图…...

JavaScript初级——Math

一、Math 和其他的对象不同&#xff0c;它不是一个构造函数。它属于一个工具类&#xff0c;不用创建对象&#xff0c;里边封装了数学运算相关的属性和方法。 比如&#xff1a; Math.PI 表示圆周率。 二、Math.abs&#xff08;&#xff09; —— 可以用来计算一个数的绝对值。 三…...

ffmpeg的基础命令

文章目录 ffmpeg/ffplay/ffprobe区别ffmpeg 的作用ffplay的作用ffprobe的作用 ffmpeg使用概述功能概述转码过程简单使用FFMPEG -i常用的 -i例子 ff***工具之间共享的选项ffmpeg主要选项ffmpeg提取音视频数据ffmpeg命令修改原有的视频格式ffmpeg命令裁剪和合并视频拼接视频的方式…...

二建机电工程实务试题内附答案

1.下列有色金属材料中&#xff0c;不属于铜合金的是()。 A.紫铜 B.青铜 C.黄铜 D.白铜【答案】A 2.用于完成介质间热量交换的换热设备是()。 A.分离器 B.反应器 C.冷凝器 D.分解锅【答案】C 3.工程测量的核心是()。 A.测量精度 B.设计要求 C.减少误差累积 D.检核【答案】D 4.吊…...

Redis的热key以及Big(大)key是什么?如何解决Redis的热key以及Big(大)key问题?

一、先讲讲什么是redis的热key问题 在Redis中&#xff0c;我们把访问频率高的Key&#xff0c;称为热Key。比如突然有几十万的请求去访问redis中某个特定的Key&#xff0c;那么这样会造成redis服务器短时间流量过于集中&#xff0c;很可能导致redis的服务器宕机。那么接下来对这…...

django学习入门系列之第九点《MySQL命令介绍一》

文章目录 MySQL命令数据库的管理&#xff08;文件夹&#xff09;查看现在已有的数据库&#xff08;文件夹&#xff09;创建数据库&#xff08;文件夹&#xff09;删除数据库&#xff08;文件夹&#xff09;进入数据库&#xff08;文件夹&#xff09;查看文件夹下所有的数据表&a…...

Mysql面试一

目录 一、事务的四大特性&#xff08;ACID&#xff09;&#xff1a; 脏读 不可重复读 幻读 隔离性与隔离级别 数据库的三大范式 第一范式。确保数据表中的每个字段都是不可分割的最小单位&#xff0c;即原子性。这意味着表中的每一列都应代表一个独立的数据单元&#xff…...

模型优化之剪枝

文章目录 什么是神经网络剪枝剪枝的好处不同粒度的剪枝剪枝的分类非结构化剪枝结构化剪枝 哪些层的参数更容易被剪掉剪枝效果 什么是神经网络剪枝 神经网络剪枝 在训练期间删除连接密集张量将变得稀疏&#xff08;用零填充&#xff09;可以通过结构化块&#xff08; n m nm nm&…...

JVM的组成

JVM 运行在操作系统之上 java二进制字节码文件的运行环境 JVM的组成部分 java代码在编写完成后编译成字节码文件通过类加载器 来到运行数据区,主要作用是加载字节码到内存 包含 方法区/元空间 堆 程序计数器,虚拟机栈,本地方法栈等等 随后来到执行引擎,主要作用是翻译字…...

快速上手 iOS Protocol Buffer

快速上手 iOS Protocol Buffer | 来自缤纷多彩的灰 本文主要介绍在 iOS 开发中如何快速上手使用 Protobuf。更多关于 Protobuf 的介绍和相关的功能 api&#xff0c;读者可自行查阅官网。 Protocol Buffer&#xff08;简称 Protobuf&#xff09;是一种由Google开发的语言中立、…...

每天一个数据分析题(四百八十)- 线性回归建模

关于线性回归建模&#xff0c;线性回归模型假设说法不正确的是&#xff1f; A. 因变量和自变量要有因果关系 B. 残差均值为0 C. 残差服从正态分布 D. 自变量不存在共线性 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专…...

电动汽车和混动汽车DC-DC转换器的创新设计与测试方法

汽车 DC-DC 转换器市场规模将达到187亿美元&#xff0c;年复合增长率为10%。 DC-DC 转换器是汽车的重要组成部分&#xff0c;它可以通过电压转换为各种车载系统供电&#xff0c;例如日益复杂的车载信息娱乐系统、使用驾驶辅助系统&#xff08;ADAS&#xff09;实现的增强安全功…...

OriginPro快速上手指南:数据可视化与分析的利器

目录 OriginLab - Origin and OriginPro - Data Analysis and Graphing Softwarehttps://www.originlab.com/​编辑 一、安装与界面概览 安装 界面概览 二、基础操作 数据输入 创建图表 三、高级功能 数据分析 自动化与脚本 Origin 提供了几个小工具 四、技巧与提示…...

缓存学习

缓存基本概念 概念 对于缓存&#xff0c;最普遍的理解是能让打开某些页面速度更快的工具。从技术角度来看&#xff0c;其本质上是因为缓存是基于内存建立的&#xff0c;而内存的读写速度相比之于硬盘快了xx倍&#xff0c;因此用内存来代替硬盘作为读写的介质当然能大大提高访…...

亚世光电:消费电子年度表演

机圈风云再起&#xff0c;消费电子乘风而起&#xff1f; 今天我们来聊——亚世光电 最近&#xff0c;华为mate60突然降价&#xff0c;被大家怀疑是为新品上市做准备&#xff0c;算算时间&#xff0c;下半年的消费电子大战也即将拉开帷幕&#xff0c;而亚世光电所在的光电显示领…...

AI 工程应用 建筑表面检测及修复

文章目录 1 项目概述&#xff08;必写&#xff09;&#xff1a;2 技术方案与实施步骤2.1 模型选择&#xff08;必写&#xff09;&#xff1a;2.2 数据的构建&#xff1a;2.3 功能整合&#xff08;进阶&#xff09;&#xff1a; 3 实施步骤&#xff1a;3.1 环境搭建&#xff08;…...

Qt-Qt中的小事项(7)

目录 命名风格 快捷键 查询文档 坐标系 代码理解 move 命名风格 这个也是老生常谈的问题了&#xff0c;入乡随俗就好啦 快捷键 这里是一些常用的快捷键&#xff0c;用多了自然就熟悉了 • 注释&#xff1a;ctrl/ • 运行&#xff1a;ctrlR • 编译&#xff1a;ctrlB …...

Android MediaRecorder 视频录制及报错解决

目录 一、start failed: -19 二、使用MediaRecorder录制视频 2.1 申请权限 2.2 布局文件 2.3 MediaRecordActivity 2.4 运行结果 三、拓展 3.1 录制视频模糊(解决) 3.2 阿里云OSS上传文件 3.2.1 权限(刚需) 3.2.2 安装SDK 3.2.3 使用 相关链接 一、start failed…...

HarmonyOS应用程序访问控制探究

关于作者 白晓明 宁夏图尔科技有限公司董事长兼CEO、坚果派联合创始人 华为HDE、润和软件HiHope社区专家、鸿蒙KOL、仓颉KOL 华为开发者学堂/51CTO学堂/CSDN学堂认证讲师 开放原子开源基金会2023开源贡献之星 一、引言 随着信息技术的飞速发展&#xff0c;移动应用程序已经成为…...

董卫民赴考拉悠然等企业调研,强调加快发展人工智能产业

8月14日&#xff0c;按照省政府重点产业链协同推进机制有关工作安排&#xff0c;省委常委、常务副省长董卫民在成都市调研人工智能产业发展情况&#xff0c;并召开座谈会。他强调&#xff0c;要坚决落实党的二十届三中全会精神和省委省政府决策部署&#xff0c;充分把握人工智能…...

MFC将类A中的事件在类B中处理采用回调函数实现

需求&#xff1a; 在类A的界面上有一个tab控件。tab控件上面有那个页面。在MFC编程中一个tab的一个页面就应该是一个新的类。在tab的一个页面上有一个list控件。现在需要将list控件的点击事件&#xff0c;双击事件等在类A里面处理。 解决&#xff1a; 在类B里面给控件list添加…...

公众号 微信登录

export function getWxCode(that, localhostUrl) { // localhostUrl 当前页面的路径 传这个也可以this.$route.fullPath// console.log(that.$store.state.wxSessionData)// console.log(that.$store.state.wxSessionData.openId)//openId为undefine执行获取openid判断是否没有…...

sanic + webSocket:股票实时行情推送服务实现

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…...

Unity动态给按钮各个状态下的图片赋值

Unity动态给按钮各个状态下的图片赋值 using UnityEngine; using UnityEngine.UI; public class ButtonOnClickTest : MonoBehaviour {public Button btn;public Sprite _highlighterSprite;public Sprite _pressedSprite;public Sprite _selectesdSprite;public Sprite _disa…...

xiaomi pad 6PRO 小米平板6 pro hyperOS降级 澎湃os 降级MIUI 14 教程 免解锁BL 降级,168小时解锁绑定

小米平板 6 Pro 机型代号 &#xff1a;liuqin 降级MIUI 14 小米澎湃 OS 正式版 澎湃OS安卓发布日期卡刷包线刷包OS1.0.7.0.UMYCNXM14.02024-07-13miui_LIUQIN_OS1.0.7.0.UMYCNXM_d618a5c980_14.0.zipliuqin_images_OS1.0.7.0.UMYCNXM_20240705.0000.00_14.0_cn_8cbf5920be.…...

MySQL 备份一个表

语法(创建一个与table1结构相同的新表table2&#xff0c;并且将table1的数据复制到table2)&#xff1a; create table table2 as select * from table1 举例(备份tb_log表到tb_log_20240815中去)&#xff1a; create table tb_log_20240815 as select * from tb_log...

鸿蒙开发入门day10-组件导航

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 组件导航 (Navigation) 设置页面显示模式 设置标题栏模式 设置菜…...