一、web框架
web框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速开发特定的系统。他山之石,可以攻玉。python的所有web框架,都是对socket进行封装的。
web应用本质上是一个socket服务端,用户的浏览器是一个socket客户端。socket处在应用层与传输层之间,是操作系统中I/O系统的延伸部分(接口),负责系统进程和应用之间的通信。【python网络编程基础】
上面这个解释看起来有点费劲。重新解释一遍:
socket是在应用层和传输层之间的一个抽象层,扮演“信使”角色。它把tcp/ip层复杂的操作抽象为几个简单的接口以供应用层调用,从而实现在网络中通信。
django是python web开发的主流框架,另外还有flask和tensorflow。django框架必须掌握,要学精通。
web应用的流程:
//浏览器发送一个HTTP请求; //服务器收到请求,根据请求信息,进行函数处理,生成一个HTML文档; //服务器把HTML文档作为HTTP响应的Body发送给浏览器; //浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示;
回顾一下socket的udp连接和tcp连接,注:查看当前进程和杀死进程的window命令:
netstat -ano|findstr 45678
taskkill -PID 45678的进程 -F
udp客户端和服务端
import socket # upd链接 # SOCK_DGRAM:数据报套接字,主要用于UDP协议 udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 关闭防火墙 # 同一网段(局域网)下,主机的ip地址和端口号. sendAddr = ('192.168.10.247', 8080) # 绑定端口:写的是自己的ip和固定的端口,一般是写在sever端. udpSocket.bind(('', 9900)) # sendData = bytes(input('请输入要发送的数据:'), 'gbk') # gbk, utf8, str sendData = input('请输入要发送的数据:').encode('gbk') # python3是unicode编码,也就是以unicode格式写成的字节. # encode,重写编码:就是把unicode环境下的数据,重新编码成指定格式的字节,比如gbk, utf8等.然后接收方以同样的解码格式解码. # 用网络串口助手作为udp的服务端.网络串口助手是字节和十六进制的字节,没有unicode编码,有gbk编码和utf8编码.所以要解码成gbk # 反过来,接收数据的时候,也要知道对方发送的数据要怎么解码. # 使用udp发送数据,每一次发送都需要写上接收方的ip地址和端口号 udpSocket.sendto(sendData, sendAddr) # udpSocket.sendto(b'hahahaha', ('192.168.10.247', 8080)) udpSocket.close()