python 最简单的web应用(一)
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。
server.py文件 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Dang Kai # @Date: 2018-08-24 14:50:02 # @Last Modified time: 2018-08-24 14:57:56 # @E-mail: 1370465454@qq.com # @Description: import socket def handle_request(client): buf =client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n".encode("UTF-8")) with open("index.html","rb") as f: data=f.read() client.send(data) def main(): sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind(('localhost',8001)) sock.listen(5) while True: connection,address=sock.accept() handle_request(connection) connection.close() if __name__ == '__main__': main()
index.html文件:
<!DOCTYPE html>
<html lang="en">
<head></head>
<body><h1>Hello</h1></body>
</html>
运行结果:
最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。
如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。
正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。
这个接口就是WSGI:Web Server Gateway Interface。
请看下一篇
目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。
另外,转载时请附带链接。谢谢!