首先,不得不说,web框架的根源就是socket!
上篇文章Python3 Socket与Socket心跳机制简单实现
先上代码
socket_webmd.py
import socket
def handle_request(Client):
msg = Client.recv(1024)
Client.send(bytes("HTTP/1.1 200 OK\r\n\r\n",'utf-8'))
Client.send(bytes("Hello WEB!",'utf-8'))
def main():
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = "127.0.0.1"
s.bind((host,8000))
s.listen(5)
print(' * Running on %s '%host)
while True:
conn,addr=s.accept()
handle_request(conn)
conn.close()
if __name__ == '__main__':
main()
效果如图:
文章图片
十七行代码就可以构成最简单的网页,那这十七行代码能不能再精简呢?能。
app.py
from wsgiref.simple_server import make_server
def handle_request(env, res):
res("200 OK",[("Content-Type","text/html")])
body = "Hello World!"
return [body.encode("utf-8")]
if __name__ == "__main__":
httpd = make_server("127.0.0.1",8000,handle_request)
print("Serving http on port 8000")
httpd.serve_forever()
这里socket我们没有写而是导入了一个包,它封装了我们需要的东西,这样我们就不用写了。
【Socket|python3 web框架(一、web框架的本质)】下篇:python3 web框架(二、关于web框架理解)
推荐阅读
- C语言|select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- Django|Python接口自动化测试系列[V1.0.0][加密接口]
- C#|Socket网络编程流程图
- Socket|TCP报文格式
- Django (一)-DRF(DjangoRESTframework)工程搭建
- Django中新版本变动和版本不同的各种坑 (持续更新)
- xadmin|ImportError: No module named 'reversion'