Python管理myql、搭建frp服务上线mysql数据库、Python生成可执行文件及python模块发布web服务

server/2024/10/20 4:02:54/

Day 21

复习

[root@python ~]# vim test03.py

a=3

b=4

print(a+b)

print(a**2+b**2)

[root@python ~]# python3 test03.py

7

25

# 逐行调试

[root@python ~]# python3 -m pdb test03.py

> /root/test03.py(1)<module>()

-> a=3

(Pdb) n

> /root/test03.py(2)<module>()

-> b=4

(Pdb) n

> /root/test03.py(3)<module>()

-> print(a+b)

(Pdb) n

7

> /root/test03.py(4)<module>()

-> print(a**2+b**2)

(Pdb) n

25

--Return--

> /root/test03.py(4)<module>()->None

-> print(a**2+b**2)

(Pdb) n

--Return--

> <string>(1)<module>()->None

(Pdb) n

[root@python ~]# python3

>>> import random

>>> random

<module 'random' from '/usr/lib64/python3.6/random.py'>

>>>

[root@python ~]# cat /usr/lib64/python3.6/random.py

搭建frp服务上线mysql数据库

# mysql-master作为服务器端对外发布

[root@master-mysql ~]# cp -r frp_0.33.0_linux_amd64/ frp/

[root@master-mysql ~]#cd frp/

[root@master-mysql frp]# ls

frpc           frpc.ini  frps_full.ini  LICENSE

frpc_full.ini  frps      frps.ini       systemd

[root@master-mysql frp]#vim frps.ini

bind_port = 7000

dashboard_user=aaa

dashboard_pwd=aaa  

dashboard_port=7500

[root@master-mysql frp]#firewall-cmd --zone=public --add-port=7500/tcp --permanent

[root@master-mysql frp]#firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent

[root@master-mysql frp]#firewall-cmd --reload

[root@master-mysql frp]#./frps -c frps.ini

2024/07/19 11:18:14 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000

2024/07/19 11:18:14 [I] [root.go:209] start frps success

firewall-cmd --zone=public --add-port=7000/tcp --permanent

# 客户端的配置

[root@cz ~]# ls

anaconda-ks.cfg         frp_0.33.0_linux_amd64.tar

frp_0.33.0_linux_amd64

[root@cz ~]# cd frp_0.33.0_linux_amd64

[root@cz frp_0.33.0_linux_amd64]# ls

frpc           frpc.ini  frps_full.ini  LICENSE

frpc_full.ini  frps      frps.ini       systemd

[root@cz frp_0.33.0_linux_amd64]# vim frpc.ini

[common]  

server_addr = 192.168.2.45

server_port = 7000

[caizijaun]

type = tcp

local_ip = 127.0.0.1

local_port = 3306  

remote_port = 6029  

[root@cz frp_0.33.0_linux_amd64]#  ./frpc -c frpc.ini

2024/07/19 13:59:31 [I] [service.go:282] [d82f1ce364b4ddbd] login to server success, get run id [d82f1ce364b4ddbd], server udp port [0]

2024/07/19 13:59:31 [I] [proxy_manager.go:144] [d82f1ce364b4ddbd] proxy added: [caizijuan]

2024/07/19 13:59:31 [W] [control.go:177] [d82f1ce364b4ddbd] [caizijuan] start error: port already used

[root@cz ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent

[root@cz ~]# systemctl start firewalld

[root@cz ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent

[root@cz ~]# firewall-cmd --reload

Python管理myql

======Python更换源的方法======

[root@python ~]# pip3 install pandas

# 永久换源

方法一:一行命令换源

只需在命令行中输入下面这一行命令,即可永久设置pip下载源为国内源,提⾼下载和安装速度:

[root@python ~]#pip3 config set global.index-url Simple Index

[root@python ~]#yum -y install sqlalchemy

[root@python ~]#pip3 install pandas

注意如果执行命令时报错 ERROR: unknown command “config“ 可能是Pip版本过低,要么升级pip版本,要么使用方法二。

方法二:配置换源脚本

不管你用的是pip3还是pip,方法都是一样的(也即都是创建pip文件夹):

1)先创建文件夹,然后创建并打开文件(如果你已经有这个文件夹或者文件,那么执行下面的命令可能会报错,这无所谓,目的是有这个文件夹和文件就行)

[root@python ~]#mkdir ~/.pip

[root@python ~]#vim ~/.pip/pip.conf

2)在pip.conf文件中输入以下内容,然后保存退出即可。

[global]

timeout=100

index-url=https://pypi.tuna.tsinghua.edu.cn/simple/

extra-index-url= http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=

        pypi.tuna.tsinghua.edu.cn

        mirrors.aliyun.com

=======列举国内源列表=====

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣 http://pypi.douban.com/simple/

Python官方 https://pypi.python.org/simple/

v2ex http://pypi.v2ex.com/simple/

中国科学院 http://pypi.mirrors.opencas.cn/simple/

清华大学 Simple Index

# 临时换源

每次都给pip进行临时换源:pip3 install -i  http://pypi.douban.com/simple/ 包名

# 安装pandas数据分析工具(pandas是知名的数据分析工具,pandas有完整的读取数据的工具,以及DateFrame数据框架,⽤于保存从数据库中读取的数据)

[root@python ~]#yum -y install pymysql

# 安装pymysql连接器(oracle为开发者提供的python管理mysql的⼯具,通过这个⼯具,就恶意在不替原有代码的情况下,应对数据库软件的升级)

[root@python ~]#yum -y install pymysql

Successfully installed pymysql-1.0.2

[root@python ~]#python3

>>> import pymysql

>>> import pandas

>>> pymysql

<module 'pymysql' from '/usr/local/lib/python3.6/site-packages/pymysql/__init__.py'>

>>> pandas

<module 'pandas' from '/usr/local/lib64/python3.6/site-packages/pandas/__init__.py'>

>>> import pymysql as py

>>> import pymysql as pm

>>> import pandas as pd

>>> pm

<module 'pymysql' from '/usr/local/lib/python3.6/site-packages/pymysql/__init__.py'>

>>> pd

<module 'pandas' from '/usr/local/lib64/python3.6/site-packages/pandas/__init__.py'>

>>> conn=pm.connect(

... host='192.168.2.45',

... user='huajuan',

... password='Huajuan_123',

... database='test',

... port=6029);

>>> conn=pm.connect(

>>> conn

<pymysql.connections.Connection object at 0x7faaaa7463c8>

>>> cursor=conn.cursor()

# 查看游标

>>> cursor

<pymysql.cursors.Cursor object at 0x7faaaa79bbe0>

>>> sql="select * from student"

>>> sql

'select * from student'

>>> cursor.execute(sql)

5

>>> cursor.fetchall()

((1, '花卷', '女'), (2, '张三', '男'), (3, '莎莎', '女'))

>>> cursor.description

(('id', 3, None, 11, 11, 0, False), ('name', 253, None, 180, 180, 0, False), ('gender', 253, None, 16, 16, 0, False))

>>> head=[]

>>> desc=cursor.description

>>> 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=cursor.fetchall(),columns=head)

Empty DataFrame

Columns: [id, name, gender]

Index: []

>>> pd.DataFrame(cursor.fetchall(),columns=head)

Empty DataFrame

Columns: [id, name, gender]

Index: []

>>> cursor.fetchall()

()

>>> cursor.execute(sql)

5

>>> res=cursor.fetchall()

>>> res

((1, '花卷', '女'), (2, '张三', '男'), (3, '莎莎', '女'))

>>> head

['id', 'name', 'gender']

>>> pd.DataFrame(data=res,columns=head)

   id  name gender

0   1    花卷      女

1   2    张三      男

2   3   莎莎      女

将所有操作编写成一个py文件

说明:和shell脚本⼀样python⽂件也可以称为py脚本,也是将pyhton指令做⼀个集。为了脚本更加的智能化和⾃动化,添加选择语句(智能)循环语

句(⾃动化),同时为了开发效率,可读性,做了⽅法,类,模块,

[root@python ~]#vim python_mysql.py

import pandas as pd

import pymysql as pm

class Python_Mysql_01(object):

import pymysql as pm

class Python_Mysql_01(object):

        def __int__(self):

                print('test')

        def getConn(self):

print('*************************')

                conn=pm.connect(

                        host=input('sign host_ip|name:'),

                        user=input('sign database username:'),

                        password=input('sign database password:'),

                        database=input('sign database name:'),

                        port=int(input('sign port no:')

                )

#print(conn)

return conn

def getRes(self, curror, sql):

                cursor.execute(sql)

# 获得查询的数据

data=cursor.fetchall()

# 三目运算符,获得表头

head=[item[0] for item in cursor.description]

                resturn cursor.fetchall()

# 组成pandas数据框 DataFrame

return pandas.DataFrame(data=data,columns=head)

if __name__=="__main__":

# 初始化Python_Mysql_01类,创建实例pmp,之后所有的方法都可以在实例中调用

        pmp=Python_Mysql_01()

# 获得conn

conn=pmp.getConn()

# 获得游标

cursor=conn.cursor()

print(cursor)

pmp.getConn()

Tablename=input('sign tablename')

df=pmp.getRes(cursor,'select * from'+tablename)       

print(df)

[root@python ~]#python3 python_mysql.py

((1, '花卷', '女'), (2, '张三', '男'), (3, '莎莎', '女'))

pip3 install pyinstaller

[root@fw ~]# ./python_mysql

*************************

sign host_ip|name:192.168.2.45

sign database username:huajuan

sign database password:Huajuan_123

sign database name:test

sign port no:6029

   id  name gender

0   1    花卷      女

1   2    张三      男

2   3   莎莎      女

[root@python ~]#ls

[root@python dist]#cd dist/

python_mysql

Python生成可执行文件

说明:因为py文件要被执行需要在linux中安装python环境,但是二进制可执行文件,不要环境,在任何linux主机上都可以执行。# 安装pyinstaller

[root@python ~]#pip3 insatll pyinstaller

[root@python ~]#which pyinstaller

# 使⽤pyinstaller生成可执行文件

[root@python ~]#pyinstaller --onefile python_mysql.py

注意: py文件中必须是有 if __name__=="__main__":

python_mysq

python模块发布web服务

[root@python ~]#python3 -m http.server 9000

能够将当前目录中所有的文件作为web服务器发布。


http://www.ppmy.cn/server/99967.html

相关文章

LeetCode --- 136双周赛

题目列表 3238. 求出胜利玩家的数目 3239. 最少翻转次数使二进制矩阵回文 I 3240. 最少翻转次数使二进制矩阵回文 II 3241. 标记所有节点需要的时间 一、求出胜利玩家的数量 这题可以直接模拟统计符合条件的玩家数量&#xff0c;代码如下 class Solution { public:int wi…

【应用开发】关于RS232串口如何进行数据传输

【应用开发】关于RS232串口如何进行数据传输 1.背景2. 传输1.背景 RS-232C 全双工通信利用 TX 和 RX 引脚在独立的线路上同时传输和接收模拟电压信号,从而实现高效的双向数据通信。 这种全双工模式使得 RS-232C 在需要双向实时通信的应用中表现得非常出色。 在编程时上位机发…

变量的注意或许需要调试

输入一个自然数N&#xff08;1<N<9&#xff09;&#xff0c;从小到大输出用1~N组成的所有排列&#xff0c;也就说全排列。例如输入3则输出 123 132 213 231 312 321 输入格式: 输入一个自然数N&#xff08;1<N<9&#xff09; 输出格式: N的全排列&#xff0c;每行一…

OpenCV 与多视图几何

欢迎访问我的博客首页。 OpenCV 与多视图几何 1. 工具函数2. 本质矩阵3. 单应矩阵4. 基础矩阵5. 参考 1. 工具函数 像素坐标、归一化坐标和相机坐标之间的相互转化。 #include <iostream> #include <opencv2/opencv.hpp>// 相机坐标系到像素坐标系的变换。 cv::Po…

前端工程化项目 用npm拉git项目的时候是在是太慢了怎么办

最近在家拉git项目发现npm i之后,开始下得挺快&#xff0c;过会就卡着不动了&#xff0c;大概几分钟后才下好。这对一个有强迫症的码农来说是不能容忍的。 只能退出去 重新下载 其实我们只要换一下国内的下载镜像源就好了 npm config set registry https://registry.npmmirror…

基于STM32开发的智能电能监测系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 家庭电能监测工业用电管理常见问题及解决方案 常见问题解决方案结论 1. 引言 智能电能监测系统通过实时采集电流、电压等电力参数&#xff0c;计算电能消耗&…

Java项目打包部署到服务器的详细教程

摘要&#xff1a;本文将详细介绍如何将Java项目打包成可执行文件&#xff0c;并将其部署到服务器上。通过本文的学习&#xff0c;你将掌握Java项目打包和部署的整个过程。 一、准备工作 开发环境&#xff1a;本文以IntelliJ IDEA为例&#xff0c;其他IDE同理。 服务器&#x…

mysql数据存储问题

目录 MySQL数据存储基础 MySQL数据存放位置 InnoDB存储引擎介绍 Mermaid图表&#xff1a;InnoDB存储引擎数据文件结构 表空间结构详解 组成要素 组织方式 页内组织 性能影响 Mermaid图表&#xff1a;表空间的层次化结构和页内组织 InnoDB行格式详解 行格式类型 Co…