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。

请看下一篇

 

posted @ 2018-08-24 15:14  (时光)光阴飞逝  阅读(2067)  评论(0编辑  收藏  举报