1. 程式人生 > >python 最簡單的web應用(一)

python 最簡單的web應用(一)

code http服務器 doc == utf with con enc quest

對於所有的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。

請看下一篇

python 最簡單的web應用(一)