第二十五天学习笔记2024.8.9
1、通过frp内网穿透共享数据库信息
[root@1 ~]# mysql -p'密码'
mysql> create user 'li'@'%' identified by '1';
mysql> create database test;
mysql> grant all on test.* to 'li';
[root@1 ~]# tar -xf frp_0.33.0_linux_amd64.tar.gz
[root@1 ~]# cd frp_0.33.0_linux_amd64/
[root@1 frp_0.33.0_linux_amd64]# vim frpc.ini
[common]
server_addr = 123.249.27.70
server_port = 7000
token=15773141955
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 6000
[root@1 frp_0.33.0_linux_amd64]# ./frpc -c frpc.ini
访问公网ip的7500端口,查看控制面板
2、在python中连接数据库并结合游标对数据库进行操作
前提:要有python3环境
pip3 config set global.index-url Simple Index //设置 pip3 的全局配置,将默认的 Python 包索引源(index-url)修改为清华大学的镜像源 https://pypi.tuna.tsinghua.edu.cn/simple
上面命令执行失败:执行该命令[root@2 ~]# python3 -m pip install --upgrade pip
1、设置清华镜像站(从国内下载安装包,提高下载和安装工具速度)
2、安装pandas数据分析工具(pandas是知名的数据分析工具,pandas有完整的读取数据的工具,以及DateFrame数据框架,用于保存从数据库中读取的数据)
3、安装pymysql连接器(oracle为开发者提供的python管理mysql的工具,通过这个工具,就可以在不替换原有代码的情况下,应对数据库软件的升级)
[root@2 ~]# python3 -m pip install --upgrade pip #将 pip 工具升级到最新版本
[root@2 ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #设置 pip3的全局配置
[root@2 ~]# pip3 install pandas #安装Python的pandas库
[root@2 ~]# pip3 install pymysql #用于安装pymysql库
[root@2 ~]# python3
>>> import pymysql as py #以别名py导入pymysql库,可以使用更简洁的别名py来调用pymysql库中的函数和方法
>>> import pandas as pd #以别名py导入pandas库
>>> py #表示 Python 成功识别了导入的pymysql库,并能够展示关于这个模块的一些基本信息,包括它的位置
<module 'pymysql' from '/usr/local/lib/python3.6/site-packages/pymysql/__init__.py'>
>>> pd #表示 Python 成功识别了导入的pandas库
<module 'pandas' from '/usr/local/lib64/python3.6/site-packages/pandas/__init__.py'>
>>> conn=py.connect( #使用pymysql库建立了一个到指定MySQL数据库的连接,变量conn成功保存了这个数据库连接,可以通过它进行后续的数据操作
... host='123.249.27.70',
... user='abcd',
... password='abcd',
... database='test',
... port=6001);
>>> conn #表明您成功创建了一个与 MySQL数据库的连接对象conn,0x7f529dda29b0是这个连接对象在内存中的地址
<pymysql.connections.Connection object at 0x7f529dda29b0>
>>> cursor=conn.cursor() #创建一个游标对象 cursor
>>> cursor
<pymysql.cursors.Cursor object at 0x7f52b7ade710>
>>> sql="select * from student" #定义了一个SQL查询语句
>>> sql
'select * from student'
>>> cursor.execute(sql) #将您定义的SQL语句select * from student发送到数据库服务器执行
5 #查询的结果会被存储在游标内部,您可以通过后续的操作来获取和处理这些结果
>>> cursor.fetchall() #获取所有的查询结果,以元组的形式返回一个包含所有行数据的列表
((1, '章三', '男'), (2, '李四', '女'), (3, '小凤仙', '女'), (4, '章丘铁锅', '男'), (6, '孙颖莎', '女'))
>>> cursor.description #返回一个描述结果集中列的元组序列,通常包括列名、数据类型、显示大小、内部大小、精度、小数位数和是否可为空等
(('id', 3, None, 11, 11, 0, False), ('name', 253, None, 180, 180, 0, False), ('gender', 253, None, 16, 16, 0, False))
>>> res=cursor.fetchall()
>>> res
((1, '章三', '男'), (2, '李四', '女'), (3, '小凤仙', '女'), (4, '章丘铁锅', '男'), (6, '孙颖莎', '女'))
>>> head=[] # 创建一个head列表
>>> desc=cursor.description
>>> for var in desc:
... print(var)
...
('id', 3, None, 11, 11, 0, False)
('name', 253, None, 180, 180, 0, False)
('gender', 253, None, 16, 16, 0, False)
>>> for var in desc:
... print(var[0])
...
id
name
gender
>>> for var in desc:
... head.append(var[0])
...
>>>head
['id', 'name', 'gender']
>>> pd.DataFrame(data=res,columns=head) #使用了pandas库创建了一个DataFrame,data=res 表示数据内容,columns=head 指定了列名
id name gender
0 1 章三 男
1 2 李四 女
2 3 小凤仙 女
3 4 章丘铁锅 男
4 6 孙颖莎 女
1、制作python脚本操作数据库
[root@2 ~]# vim python_mysql.py
import pymysql as pm
import pandas
class Python_Mysql_01(object): #定义了一个名为Python_Mysql_01的类,用于与 MySQL 数据库进行交互并将查询结果转换为 pandas 的 DataFrame
def __init__(self): #类的初始化方法,用于标识类的实例化操作
print("test")
def getConn(self): #用于建立与指定MySQL数据库的连接,并返回连接对象 conn
conn=pm.connect(
host='123.249.27.70',
user='abcd',
password='abcd',
database='test',
port=6001
)
# print(conn)
return conn
def getRes(self,cursor,sql): #接收一个游标对象cursor和一个SQL语句 sql 。执行 SQL 语句并获取查询结果data,提取表头信息head,然后将结果和表头组成 DataFrame 并返回
cursor.execute(sql)
# 获得查询的数据
data=cursor.fetchall()
# 表头
head=[item[0] for item in cursor.description]
# 组成pandas数据框 DataFrame
return pandas.DataFrame(data=data,columns=head)
if __name__=="__main__":
# 初始化Python_Mysql_01类,创建实例,pmp,之后所有的方法都可以在实例中>调用
pmp=Python_Mysql_01() #实例化Python_Mysql_01类为pmp
# 获得conn
conn=pmp.getConn() #通过pmp调用getConn方法获取数据库连接conn
# 获得游标
cursor=conn.cursor() #从conn获取游标cursor
# print(cursor)
df=pmp.getRes(cursor,"select * from student")
print(df) #调用pmp的getRes方法执行select * from student语句,并将结果存储在df中,最后打印df
[root@2 ~]# python3 python_mysql.py
test
id name gender
0 1 章三 男
1 2 李四 女
2 3 小凤仙 女
3 4 章丘铁锅 男
4 6 孙颖莎 女
相关文章:
第二十五天学习笔记2024.8.9
1、通过frp内网穿透共享数据库信息 [root1 ~]# mysql -p密码 mysql> create user li% identified by 1; mysql> create database test; mysql> grant all on test.* to li; [root1 ~]# tar -xf frp_0.33.0_linux_amd64.tar.gz [root1 ~]# cd frp_0.33.0_linux_a…...
sqlserver将一张表导出成txt
bcp zjwb_sb_20111122.dbo.ep_pb_groupvisitplace out c:/1.txt -n -U sa -P sa...
YOLOv8+DeepSort实现
目录 1,YOLOv8算法简介 2,DeepSort算法介绍 1. SORT目标追踪 3,实现流程 1.检测 2. 生成detections 3. 卡尔曼滤波预测 4.使用匈牙利算法将预测后的tracks和当前帧中的detections进行匹配 5. 卡尔曼滤波更新 4,代码实现 …...
「链表」链表原地算法合集:原地翻转|原地删除|原地取中|原地查重 / LeetCode 206|237|2095|287(C++)
概述 对于一张单向链表,我们总是使用双指针实现一些算法逻辑,这旨在用常量级别空间复杂度和线性时间复杂度来解决一些问题。 所谓原地算法,是指不使用额外空间的算法。 现在,我们利用双指针实现以下四种行为。 //Definition fo…...
【STM32】SPI通信和RTC实时时钟
个人主页~ SPI通信和RTC实时时钟 SPI通信一、简介二、硬件电路三、基本原理四、SPI时序1、时序基本单元2、时序 五、FLASH操作注意事项1、写入操作2、读取操作 六、SPI外设1、简介2、结构 七、传输方式1、主模式全双工连续传输2、非连续传输 RTC实时时钟一、Unix时间戳二、BKP1…...
DAMA学习笔记(十三)-大数据和数据科学
1.引言 大数据不仅指数据的量大,也指数据的种类多(结构化的和非结构化的,文档、文件、音频、视频、流数据等),以及数据产生的速度快。数据科学家是指从从数据中探究、研发预测模型、机器学习模型、规范性模型和分析方法…...
【Java】Java 中的 toLowerCase() 方法详解
我最爱的那首歌最爱的angel 我到什么时候才能遇见我的angel 我最爱的那首歌最爱的angel 我不是王子也会拥有我的angel 🎵 张杰《云中的angel》 在 Java 编程中,字符串处理是一个非常常见的任务。为了便于开发者操作和格式化字符串&…...
Linux: 进程概念详解
1. 冯诺依曼体系结构 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 。 【注意】: a. 这里的存储器指的是内存 b. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备) c.外…...
【C++】模板详细讲解(含反向迭代器)
欢迎来到我的Blog,点击关注哦💕 前言: C的模板在是泛型编程的重要组成部分,编写在不同类型上工作的代码,而无需为每个类型编写重复的代码,这有助于减少代码冗余并提高代码的可维护性。 模板 模板的介绍 …...
haproxy七层代理详解之-完整安装部署流程及负载均衡实现-及热更新方法
一.负载均衡 1.1负载均衡时什么 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了衡将特定的业务(web服务、公司…...
C++11 bind
bind bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函 数、静态函数、类静态函数甚至是类成员函数,参数包括普通参数和类成员。绑定后的 结果,可以使用 std::function 进行保存,并延迟调用到我们需要的时候。 绑…...
LeetCode199 二叉树的右视图
前言 题目: 199. 二叉树的右视图 文档: 代码随想录——二叉树的右视图 编程语言: C 解题状态: 成功解决! 思路 二叉树层序遍历问题的变种,右视图即意味着二叉树每层的最后一个节点。 代码 /*** Definiti…...
数据赋能(172)——开发:数据挖掘——影响因素、直接作用、主要特征
影响因素 主要影响因素如下: 数据类型与属性: 数据类型和对象的不同属性会使用不同的数据类型来描述,如年龄可能是整数类型,而生日则是日期类型。数据挖掘时需要对不同的数据类型进行不同的处理,这直接影响到挖掘算法…...
Vue:Vue3-TypeScript-Pinia-Vite-pnpm / 基础项目 / 20240807
一、项目技术栈 / 依赖 序号技术栈版本解释1node20.14.02vue 3.4.31 3vite 5.3.4 4TypeScript 5.2.2 5 types/node 22.0.2 解决TypeScript项目中缺少对应模块的类型定义文件的问题6 element-plus 2.7.8 ui组建7 types/js-cookie js-cookie 3.0.6 3.0.5 8 sass 1.77.8 9 hu…...
windows Qt 录屏 录音
启动录屏录音: connect(&m_Process, &QProcess::readyReadStandardOutput, [&]() {qDebug() << "Standard output:" << QString::fromLocal8Bit(m_Process.readAllStandardOutput()); });connect(&m_Process, &QProcess…...
AAC中的ADTS格式分析
😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…...
iOS内存管理---MRC vs ARC
系列文章目录 iOS基础—Block iOS基础—Protocol iOS基础—KVC vs KVO iOS网络—AFNetworking iOS网络—NSURLSession iOS内存管理—MRC vs ARC iOS基础—Category vs Extension iOS基础—多线程:GCD、NSThread、NSOperation iOS基础—常用三方库:Mason…...
【数学分析笔记】第1章第1节:集合(2)
这节我自己补了一些内容,要不然听不太懂陈纪修老师讲的 1. 集合与映射 1.3 子集与真子集 假如有 S \textbf{S} S和 T \textbf{T} T两个集合,其中, S \textbf{S} S的所有元素都属于 T \textbf{T} T,则称 S \textbf{S} S是 T \te…...
大话设计模式:七大设计原则
目录 一、单一职责原则(Single Responsibility Principle, SRP) 二、开放封闭原则(Open-Closed Principle, OCP) 三、依赖倒置原则(Dependency Inversion Principle, DIP) 四、里氏替换原则&am…...
利用多商家AI智能名片小程序提升消费者参与度与个性化体验:重塑零售行业的忠诚策略
摘要:在数字化浪潮席卷全球的今天,零售行业正经历着前所未有的变革。消费者对于购物体验的需求日益多样化、个性化,而零售商则面临着如何将一次性购物者转化为品牌忠诚者的巨大挑战。多商家AI智能名片小程序作为一种新兴的数字营销工具&#…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
