关于简单实例 Mac 上运行不出来,有几个报错,做了下修改。
server.py
#!/usr/bin/python # -*- coding: UTF-8 -*- import socket # 建立一个服务端 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind(('localhost',6999)) #绑定要监听的端口 server.listen(5) #开始监听 表示可以使用五个链接排队 while True:# conn就是客户端链接过来而在服务端为期生成的一个链接实例 conn,addr = server.accept() #等待链接,多个链接的时候就会出现问题,其实返回了两个值 print(conn,addr) while True: try: data = conn.recv(1024) #接收数据 print('recive:',data.decode()) #打印接收到的数据 conn.send(data.upper()) #然后再发送数据 except ConnectionResetError as e: print('关闭了正在占线的链接!') break conn.close()
client.py
#!/usr/bin/python # -*- coding: UTF-8 -*- import socket# 客户端 发送一个数据,再接收一个数据 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #声明socket类型,同时生成链接对象 client.connect(('localhost',6999)) #建立一个链接,连接到本地的6969端口 while True: # addr = client.accept() # print '连接地址:', addr msg = '欢迎访问菜鸟教程!' #strip默认取出字符串的头尾空格 client.send(msg.encode('utf-8')) #发送一条信息 python3 只接收btye流 data = client.recv(1024) #接收一个信息,并指定接收的大小 为1024字节 print('recv:',data.decode()) #输出我接收的信息 client.close() #关闭这个链接
这个可以的。
关于Mysql的连接,经过摸索,建议正文修改一下,使用mysql官方提供的连接器,我目前安装的mysql是8.0.12版本,数据库安装完成后,可以安装“mysql-connector-python-8.0.12-py2.7-windows-x86-64bit”,当然了,要根据自己的操作系统和python版本以及位数进行选择,我是win10的64位,python2.7的64位,故选择的上述插件,安装完成后,直接使用以下代码进行测试:
# -*- coding:utf-8 -*- import mysql.connector # 打开数据库连接(请根据自己的用户名、密码及数据库名称进行修改) cnn = mysql.connector.connect(user='root',passwd='root',database='testdb') # 使用cursor()方法获取操作游标 cursor = cnn.cursor() # 使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() print "Database version : %s " % data # 执行sql语句 cnn.close() 显示的结果应该如下: Database version : 8.0.12
显示的结果应该如下:
Database version : 8.0.12
相关资源下载链接如下:
Python2.7(个人觉得这个版本语句兼容性高,适合入门):
https://blog.python.org/2018/05/python-2715-released.html
Mysql8.0.12(请根据自己需要选择版本):
https://dev.mysql.com/downloads/installer/
Mysql官方数据库连接器(请根据自己需要选择):
https://dev.mysql.com/downloads/connector/python/
备注:有些页面打开会很困难,原因不解释,如果实在打不开,那就自己搜一下吧。
Python3.x CGI 中文乱码解决:
import codecs, sys sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
'(?P...)' 分组匹配
例:身份证 1102231990xxxxxxxx
import re s = '1102231990xxxxxxxx' res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})',s) print(res.groupdict())
此分组取出结果为:
{'province': '110', 'city': '223', 'born_year': '1990'}
直接将匹配结果直接转为字典模式,方便使用。
#!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"
正则表达式:
r'(.*) are (.*?) .*'
解析:
首先,这是一个字符串,前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。但是这个字符串里没有反斜杠,所以这个 r 可有可无。
matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符
matchObj.group(1) 得到第一组匹配结果,也就是(.*)匹配到的
matchObj.group(2) 得到第二组匹配结果,也就是(.*?)匹配到的
因为只有匹配结果中只有两组,所以如果填 3 时会报错。
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
996Python 网络编程
关于简单实例 Mac 上运行不出来,有几个报错,做了下修改。
server.py
client.py
这个可以的。
995Python MySQL
关于Mysql的连接,经过摸索,建议正文修改一下,使用mysql官方提供的连接器,我目前安装的mysql是8.0.12版本,数据库安装完成后,可以安装“mysql-connector-python-8.0.12-py2.7-windows-x86-64bit”,当然了,要根据自己的操作系统和python版本以及位数进行选择,我是win10的64位,python2.7的64位,故选择的上述插件,安装完成后,直接使用以下代码进行测试:
显示的结果应该如下:
相关资源下载链接如下:
Python2.7(个人觉得这个版本语句兼容性高,适合入门):
https://blog.python.org/2018/05/python-2715-released.html
Mysql8.0.12(请根据自己需要选择版本):
https://dev.mysql.com/downloads/installer/
Mysql官方数据库连接器(请根据自己需要选择):
https://dev.mysql.com/downloads/connector/python/
备注:有些页面打开会很困难,原因不解释,如果实在打不开,那就自己搜一下吧。
994Python CGI 编程
Python3.x CGI 中文乱码解决:
993Python 正则表达式
'(?P...)' 分组匹配
例:身份证 1102231990xxxxxxxx
此分组取出结果为:
直接将匹配结果直接转为字典模式,方便使用。
992Python 正则表达式
正则表达式实例:
正则表达式:
解析:
首先,这是一个字符串,前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。但是这个字符串里没有反斜杠,所以这个 r 可有可无。
matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符
matchObj.group(1) 得到第一组匹配结果,也就是(.*)匹配到的
matchObj.group(2) 得到第二组匹配结果,也就是(.*?)匹配到的
因为只有匹配结果中只有两组,所以如果填 3 时会报错。