侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

socket和pymysql

2023-12-14 星期四 / 0 评论 / 0 点赞 / 96 阅读 / 4789 字

学习Python的过程中两个非常有用的模块,简单举个例子。 1 安装模块socket,pymysql 安装pymysql模块[root@wzlvm ~]# pip install pymysqlDo

        学习Python的过程中两个非常有用的模块,简单举个例子。

1    安装模块socket,pymysql

安装pymysql模块[root@wzlvm ~]# pip install pymysqlDownloading/unpacking pymysql  Downloading PyMySQL-0.7.9.tar.gz (70kB): 70kB downloaded  Running setup.py egg_info for package pymysql    Installing collected packages: pymysql  Running setup.py install for pymysql      Could not find .egg-info directory in install record for pymysqlSuccessfully installed pymysqlCleaning up...安装socket同上

 

2    模拟一个拨打10086 客服的场景,并把信息记录下来保存如数据库

        2.1  开发socket服务端

[root@wzlvm mypython]# cat socket_server.py #!/data/program/python2.7/bin/python2.7#_*_ coding:utf8 _*_#### 2016# aut wangzilong# ##import osimport sysimport re# 1 导入socket模块import socket# 2 配置IP地址 127.0.0.1 和端口 8888ip_port = ('127.0.0.1',8888)# 3 socket 实例化sk = socket.socket()# 4 socket绑定IP地址和端口sk.bind(ip_port)# 5 监听sk.listen(10)# 6 循环接受信息while True :    conn,adress = sk.accept()    conn.sendall('欢迎进入10086,进入下一步请按0')    flag = True    while flag :        data = conn.recv(1024)        if data == 'exit' :            flag = False                elif data == 0 :            conn.sendall('*********')        else :            conn.sendall(data)    conn.close()

 

    2.2 开发socket 客户端

[root@wzlvm mypython]# cat socket_client.py #!/data/program/python2.7/bin/python2.7#_*_ coding:utf8 _*_#### 2016# aut wangzilong# ##import osimport sysimport re# 1 导入模块 socketimport socket# 2 设置IP地址 127.0.0.1 和IP地址8888ip_port = ('127.0.0.1',8888)# 3 socket实例化sk = socket.socket()# 4 链接sk.connect(ip_port)# 5 设置超时时间sk.settimeout(10)# 6 循环发送信息和指令while True :    data = sk.recv(1024)    print 'receive',data    inp = raw_input('请输入:')    sk.sendall(inp)    if inp == 'exit' :        breaksk.close()

    2.3 运行测试socket 功能

# 运行服务端[root@wzlvm mypython]# ./socket_server.py # 运行客户端[root@wzlvm mypython]# ./socket_client.py receive 欢迎进入10086,进入下一步请按0请输入:0receive 0请输入:acd^H^H^H^Hreceive acd请输入:nihaoreceive nihao请输入:你好receive 你好请输入:exit

以上验证socket 功能已经成功

2.3    编写插入数据库的Python脚本

[root@wzlvm mypython]# cat socket_database.py#!/data/program/python2.7/bin/python2.7#_*_ coding:utf8 _*_import osimport sysimport pymysql# 1 定义类class insert ():# 定义 自定义函数    def base1 (self,tsql):# 链接数据库         db = pymysql.connect(host='127.0.0.1',user='user3',password='123456',db='base1')        # 新建游标        cur = db.cursor()# 执行SQL        cur.execute(tsql)# 关闭游标        cur.close()# 关闭链接        db.close()

    2.4 在 socket 服务端中应用2.3的Python,并调用2.3中的base1方法,传入SQL,插入数据库

import socket_database中间代码省略,参见之前的服务器脚本            conn.sendall('*********')        else :            i += 1            str = "insert into table1(id,remark)values(%d,'%s')" %(i,data)            obj = socket_database.insert()            obj.base1(tsql=str)            conn.sendall(data)

 

    2.5 实施验证

       运行socket服务端: ./socket_server.py 

        运行socket 客户端:

[root@wzlvm mypython]# ./socket_client.py receive 欢迎进入10086,进入下一步请按0请输入:0receive 0请输入:最后一次测试^H^H^H^Hreceive 最后一次测试请输入:overreceive over请输入:exit[root@wzlvm mypython]# 

    查询数据库中的表,是否已经插入到数据库中:

mysql> select * from table1;+------+------------------------+| id   | remark                 |+------+------------------------+|    1 | 0                      ||    2 |                    ||    3 | n                    ||    4 | 你好                 ||    5 | 世界                 ||    6 | 你好10086            ||    1 | 0                      ||    2 | 最后一次 |试|    3 | over                   |+------+------------------------+9 rows in set (0.00 sec)

验证成功

广告 广告

评论区