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

8.9 python管理mysql

[root@server1 ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple            //这是设置清华镜像站,提高下载安装速度,如果报错提示找不到config,这是因为版本低,临时使用清华镜像站来升级 pip: python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip       升级后再执行上述命令
[root@server1 ~]# pip3 install pymysql              //安装pymysql连接器(oracle为开发者提供的python管理mysql 的⼯具,通过这个⼯具,就恶意在不替原有代码的情况下,应对 数据库软件的升级)
[root@server1 ~]# pip3 install pandas            //安装pandas数据分析⼯具(pandas是知名的数据分析⼯具, pandas有完整的读取数据的⼯具,以及DateFrame数据框架,⽤ 于保存从数据库中读取的数据)
[root@server1 ~]# python3
Python 3.6.8 (default, Nov 14 2023, 16:29:52) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.567777777777777777777777777777777777777777=5
>>> 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 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='123.249.27.70',
... user='abcd',
... password='abcd',
... database='test',
... port=3306);
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 614, in connect
    (self.host, self.port), self.connect_timeout, **kwargs
  File "/usr/lib64/python3.6/socket.py", line 724, in create_connection
    raise err
  File "/usr/lib64/python3.6/socket.py", line 713, in create_connection
    sock.connect(sa)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 6, in <module>
  File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 353, in __init__
    self.connect()
  File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 664, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '123.249.27.70' (timed out)")
>>> conn=pm.connect(
... host='123.249.27.70',
... user='abcd',
... password='abcd',
... database='test',
... port=6001);
>>> 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, '小凤仙', '女'), (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))
>>> 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, '小凤仙', '女'), (4, '章丘铁锅', '男'), (6, '孙颖莎', '女'))
>>> head
['id', 'name', 'gender']
>>> pd.DataFrame(data=res,columns=head)
   id  name gender
0   1    章三      男
1   2    李四      女
2   3   小凤仙      女
3   4  章丘铁锅      男
4   6   孙颖莎      女

[root@zmysql ~]# vim python_mysql_01.py              //编写python脚本
import pymysql
import pandas

class Python_Mysql_01(object):

    def __init__(self):
        print("======================")

    def getConn(self):
        conn=pymysql.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,cursor,sql):
        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()
    # 获得conn
    conn=pmp.getConn()

    #获得游标    
    cursor=conn.cursor()
#    print(cursor)
    tablename=input("sign tablename")
    df=pmp.getRes(cursor,"select * from "+tablename)
    print(df)    
[root@zmysql ~]# python3 python_mysql_01.py               //运行脚本
======================
sign host_ip|name:123.249.27.70
sign database username:abcd
sign database password:abcd
sign database name:test
sign port no 6001
sign tablenamestudent
   id  name gender
0   1    章三      男
1   2    李四      女
2   3   小凤仙      女
3   4  章丘铁锅      男
4   6   孙颖莎      女

[root@zmysql ~]# pip3 install pyinstaller              //安装pyinstaller
[root@zmysql ~]# which pyinstaller 
/usr/local/bin/pyinstaller
[root@zmysql ~]# pyinstaller --onefile python_mysql_01.py          //使⽤pyinstaller⽣成可执⾏⽂件
[root@zmysql ~]# cd dist/
[root@zmysql dist]# ls
python_mysql_01
[root@zmysql dist]# ./python_mysql_01 
======================
sign host_ip|name:123.249.27.70
sign database username:abcd
sign database password:abcd
sign database name:test
sign port no 6001
sign tablenamestduent
   id  name gender
0   1    章三      男
1   2    李四      女
2   3   小凤仙      女
3   4  章丘铁锅      男
4   6   孙颖莎      女
[root@zmysql ~]# cd
[root@zmysql ~]# setenforce 0
[root@zmysql ~]# systemctl stop firewalld.service 
[root@zmysql ~]# python3 -m http.server 9000            //发布web服务
浏览器访问:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Go语言 Defer(延迟)
  • Flutter-->AAPT: error: resource android:attr/lStar not found.
  • 安卓中Room持久化库的使用
  • 哈希 | Java | (hot100) 力扣 49
  • 重头开始嵌入式第十九天(Linux系统编程 文件IO)
  • Android-->产物收集(含apk文件重命名, aab文件重命名)
  • Mutual_Voting_for_Ranking_3D_Correspondences
  • AFSim 仿真系统----坐标系统
  • 基于CNN的医学X-Ray图像分类全程解析
  • 在Notebook中使用backtrader绘图出现 Javascript Error: IPython is not defined
  • CUDA编程06 - 性能优化指南
  • 【微信小程序】WXSS 模板样式
  • 详解C++的四大特性(封装,继承,多态,抽象)
  • 大数据信用报告查询哪家平台的比较好?
  • 视频美颜SDK的核心技术与直播美颜插件的开发详解
  • JS 中的深拷贝与浅拷贝
  • [译]如何构建服务器端web组件,为何要构建?
  • “大数据应用场景”之隔壁老王(连载四)
  • Angular 2 DI - IoC DI - 1
  • const let
  • CSS 专业技巧
  • gulp 教程
  • HTTP那些事
  • js中forEach回调同异步问题
  • magento2项目上线注意事项
  • MySQL-事务管理(基础)
  • MySQL数据库运维之数据恢复
  • React as a UI Runtime(五、列表)
  • uni-app项目数字滚动
  • Vultr 教程目录
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 基于组件的设计工作流与界面抽象
  • 马上搞懂 GeoJSON
  • 前端性能优化--懒加载和预加载
  • 设计模式走一遍---观察者模式
  • 什么是Javascript函数节流?
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一道闭包题引发的思考
  • 与 ConTeXt MkIV 官方文档的接驳
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #ifdef 的技巧用法
  • #if等命令的学习
  • #nginx配置案例
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #vue3 实现前端下载excel文件模板功能
  • (4)事件处理——(7)简单事件(Simple events)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)ssm码农论坛 毕业设计 231126
  • (力扣)1314.矩阵区域和
  • (十八)三元表达式和列表解析