Python基礎 簡單的web伺服器

2021-09-18 04:51:18 字數 2244 閱讀 4431

實現步驟

1.獲取使用者請求路徑

2.根據路徑,返回指定內容

3.組裝報文,返回給客戶端

4.如果沒有指定路徑頁面,返回404給到客戶

import socket

def client_exec(client):

"""# 處理客戶請求

:param client:客戶端

:return: none

"""data = client.recv(1024)

if data:

# 解碼為utf-8

decode_data = data.decode("utf-8")

# 切割資料,最大切割次數是2

split_data = decode_data.split(" ", maxsplit=2)

if len(split_data) > 2:

file_path = split_data[1]

if file_path == "/":

file_path = "/index.html"

else:

client.close()

return

else:

client.close()

return

# 判斷path位址,並根據匹配訪問指定頁面

if file_path == "/index.html":

# 組裝http狀態碼為 200的響應頭

# 因為這個地方是漢字,所以需要單獨指定下文字格式型別,下同

rep_head = 'content-type:text/html;charset=utf-8\r\n'

rep_emp = "\r\n"

rep_body = "你好"

rep_cont = rep_line + rep_head + rep_emp + rep_body

# 將傳送出去的文字內容編碼為`utf-8`在經過套接字傳送給客戶端

client.send(rep_cont.encode("utf-8"))

else:

# 組裝http狀態碼為 404的響應頭

rep_body = "頁面有問題"

rep_cont = rep_line + rep_head + rep_emp + rep_body

client.send(rep_cont.encode("utf-8"))

client.close()

def main():

"""主函式

"""# 初始化套接字

server_socket = socket.socket(socket.af_inet, socket.sock_stream)

# 設定埠復用

server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, true)

# 繫結埠

server_socket.bind(('', 8081))

# 監聽埠

server_socket.listen(128)

while true:

client, address = server_socket.accept()

# 處理客戶端資訊

client_exec(client)

# 關閉埠

server_socket.close()

if __name__ == '__main__':

main()

如何訪問,可以在pycharm中執行此程式,**格式必須調好,python對應**的縮排要求比較嚴格

當執行完這個**之後,可以在本地的瀏覽器上直接輸入127.0.0.1:8081進行訪問即可,

tips:表點符號全英文

分別測試/和非/

目前這個是是最簡單版的server的建設,後面,還會設定成多工版的,當然還有最重要的動靜分離.因為最近一直有點忙,所以更新上有點慢,請諒解

python 實現簡單的web

等待某個人連線我們的伺服器並向我們傳送乙個http請求 解析該請求 了解該請求希望請求的內容 伺服器根據請求抓取需要的資料 從伺服器本地檔案中讀取或者程式動態生成 將資料格式化為請求需要的格式 返回http響應 步驟1 2 6的操作對所有web應用都是一樣的,這部分內容python標準庫中的base...

Python的web框架Django基礎學習(1

1.首先pip安裝一下 pip install django 1.11.72.可通過pycharm來建立乙個django工程 setting.py中可以小設定一下,例如訪問的ip,語言,時間格式 ip allowed hosts 語言language code zh hans 時區time zone...

python 基於flask的簡單web查詢程式

3個.py檔案 create html.py 利用pandas 將result生成 形式 mysql.py 連線資料庫獲取資料.from flask import flask from flask import request from create html import convert to h...