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

第二十五天学习笔记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&#xff0c;YOLOv8算法简介 2&#xff0c;DeepSort算法介绍 1. SORT目标追踪 3&#xff0c;实现流程 1.检测 2. 生成detections 3. 卡尔曼滤波预测 4.使用匈牙利算法将预测后的tracks和当前帧中的detections进行匹配 5. 卡尔曼滤波更新 4&#xff0c;代码实现 …...

「链表」链表原地算法合集:原地翻转|原地删除|原地取中|原地查重 / LeetCode 206|237|2095|287(C++)

概述 对于一张单向链表&#xff0c;我们总是使用双指针实现一些算法逻辑&#xff0c;这旨在用常量级别空间复杂度和线性时间复杂度来解决一些问题。 所谓原地算法&#xff0c;是指不使用额外空间的算法。 现在&#xff0c;我们利用双指针实现以下四种行为。 //Definition fo…...

【STM32】SPI通信和RTC实时时钟

个人主页~ SPI通信和RTC实时时钟 SPI通信一、简介二、硬件电路三、基本原理四、SPI时序1、时序基本单元2、时序 五、FLASH操作注意事项1、写入操作2、读取操作 六、SPI外设1、简介2、结构 七、传输方式1、主模式全双工连续传输2、非连续传输 RTC实时时钟一、Unix时间戳二、BKP1…...

DAMA学习笔记(十三)-大数据和数据科学

1.引言 大数据不仅指数据的量大&#xff0c;也指数据的种类多&#xff08;结构化的和非结构化的&#xff0c;文档、文件、音频、视频、流数据等&#xff09;&#xff0c;以及数据产生的速度快。数据科学家是指从从数据中探究、研发预测模型、机器学习模型、规范性模型和分析方法…...

【Java】Java 中的 toLowerCase() 方法详解

我最爱的那首歌最爱的angel 我到什么时候才能遇见我的angel 我最爱的那首歌最爱的angel 我不是王子也会拥有我的angel &#x1f3b5; 张杰《云中的angel》 在 Java 编程中&#xff0c;字符串处理是一个非常常见的任务。为了便于开发者操作和格式化字符串&…...

Linux: 进程概念详解

1. 冯诺依曼体系结构 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是有一个个的硬件组件组成 。 【注意】&#xff1a; a. 这里的存储器指的是内存 b. 不考虑缓存情况&#xff0c;这里的CPU能且只能对内存进行读写&#xff0c;不能访问外设(输入或输出设备) c.外…...

【C++】模板详细讲解(含反向迭代器)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言&#xff1a; C的模板在是泛型编程的重要组成部分&#xff0c;编写在不同类型上工作的代码&#xff0c;而无需为每个类型编写重复的代码&#xff0c;这有助于减少代码冗余并提高代码的可维护性。 模板 模板的介绍 …...

haproxy七层代理详解之-完整安装部署流程及负载均衡实现-及热更新方法

一.负载均衡 1.1负载均衡时什么 负载均衡:Load Balance&#xff0c;简称LB&#xff0c;是一种服务或基于硬件设备等实现的高可用反向代理技术&#xff0c;负载均网络流量等)分担给指定的一个或多个后端特定的服务器或设备&#xff0c;从而提高了衡将特定的业务(web服务、公司…...

C++11 bind

bind bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函 数、静态函数、类静态函数甚至是类成员函数&#xff0c;参数包括普通参数和类成员。绑定后的 结果&#xff0c;可以使用 std::function 进行保存&#xff0c;并延迟调用到我们需要的时候。 绑…...

LeetCode199 二叉树的右视图

前言 题目&#xff1a; 199. 二叉树的右视图 文档&#xff1a; 代码随想录——二叉树的右视图 编程语言&#xff1a; C 解题状态&#xff1a; 成功解决&#xff01; 思路 二叉树层序遍历问题的变种&#xff0c;右视图即意味着二叉树每层的最后一个节点。 代码 /*** Definiti…...

数据赋能(172)——开发:数据挖掘——影响因素、直接作用、主要特征

影响因素 主要影响因素如下&#xff1a; 数据类型与属性&#xff1a; 数据类型和对象的不同属性会使用不同的数据类型来描述&#xff0c;如年龄可能是整数类型&#xff0c;而生日则是日期类型。数据挖掘时需要对不同的数据类型进行不同的处理&#xff0c;这直接影响到挖掘算法…...

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 录屏 录音

启动录屏录音&#xff1a; connect(&m_Process, &QProcess::readyReadStandardOutput, [&]() {qDebug() << "Standard output:" << QString::fromLocal8Bit(m_Process.readAllStandardOutput()); });connect(&m_Process, &QProcess…...

AAC中的ADTS格式分析

&#x1f60e; 作者介绍&#xff1a;欢迎来到我的主页&#x1f448;&#xff0c;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff08;领取大厂面经等资料&#xff09;&#xff0c;欢迎加我的…...

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基础—多线程&#xff1a;GCD、NSThread、NSOperation iOS基础—常用三方库&#xff1a;Mason…...

【数学分析笔记】第1章第1节:集合(2)

这节我自己补了一些内容&#xff0c;要不然听不太懂陈纪修老师讲的 1. 集合与映射 1.3 子集与真子集 假如有 S \textbf{S} S和 T \textbf{T} T两个集合&#xff0c;其中&#xff0c; S \textbf{S} S的所有元素都属于 T \textbf{T} T&#xff0c;则称 S \textbf{S} S是 T \te…...

大话设计模式:七大设计原则

目录 一、单一职责原则&#xff08;‌Single Responsibility Principle, SRP&#xff09;‌ 二、开放封闭原则&#xff08;‌Open-Closed Principle, OCP&#xff09; 三、依赖倒置原则&#xff08;‌Dependency Inversion Principle, DIP&#xff09; 四、里氏替换原则&am…...

利用多商家AI智能名片小程序提升消费者参与度与个性化体验:重塑零售行业的忠诚策略

摘要&#xff1a;在数字化浪潮席卷全球的今天&#xff0c;零售行业正经历着前所未有的变革。消费者对于购物体验的需求日益多样化、个性化&#xff0c;而零售商则面临着如何将一次性购物者转化为品牌忠诚者的巨大挑战。多商家AI智能名片小程序作为一种新兴的数字营销工具&#…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...