首先,不得不说,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 = "<h1>Hello World!</h1>"
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我们没有写而是导入了一个包,它封装了我们需要的东西,这样我们就不用写了。