zoukankan      html  css  js  c++  java
  • 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
    
    ".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。

    请看下一篇

    目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。 另外,转载时请附带链接。谢谢!
  • 相关阅读:
    pat甲级1013
    二分查找
    pat甲级1012
    win10 + Ubuntu16.04双系统安装
    win10 U盘重装
    win10蓝牙添加设备无法连接
    Android自定义控件总结
    11.粘性控件
    10.侧拉删除
    9.视差特效、回弹动画、overScrollBy
  • 原文地址:https://www.cnblogs.com/dangkai/p/9530043.html
Copyright © 2011-2022 走看看