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。

請看下一篇

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM