使用python 實現一個http server

下面是一個使用 Python 內置庫 http.server 的簡單 HTTP 服務器實現。不需要安裝任何第三方庫,非常適合做演示或開發測試用。

from http.server import HTTPServer, BaseHTTPRequestHandlerclass SimpleHTTPRequestHandler(BaseHTTPRequestHandler):def do_GET(self):# 設置響應狀態碼self.send_response(200)# 設置響應頭self.send_header('Content-type', 'text/html; charset=utf-8')self.end_headers()# 響應內容self.wfile.write(b"<h1>Hello, World! This is a simple HTTP server.</h1>")if __name__ == '__main__':# 監聽 127.0.0.1:8080server_address = ('', 8080)httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)print("Server started on http://127.0.0.1:8080")httpd.serve_forever()

使用方法:

  1. 保存為 server.py
  2. 運行:python server.py
  3. 打開瀏覽器訪問:http://127.0.0.1:8080

你可以根據需要擴展 do_POSTdo_PUT 等方法,實現更多 HTTP 功能。


下面提供一個功能更豐富的 HTTP server 實現示例,采用流行的第三方庫 Flask (適合實際開發),實現以下功能:

  • 支持 GET、POST 方法。
  • 路由分發支持路徑參數。
  • JSON 數據的接收與響應。
  • 提供 404 錯誤處理。

如果你需要其它框架(如 FastAPI)、或更復雜的功能可以繼續說明。


一、安裝 Flask

首先請確保已安裝 Flask:

pip install flask

二、示例代碼

from flask import Flask, request, jsonify, abortapp = Flask(__name__)# 首頁
@app.route("/")
def index():return "<h1>Welcome to the complex Flask HTTP Server!</h1>"# 帶參數的路由
@app.route("/hello/<name>")
def hello(name):return f"<h2>Hello, {name}!</h2>"# 處理 GET 和 POST 請求
@app.route("/echo", methods=["GET", "POST"])
def echo():if request.method == "GET":msg = request.args.get('msg', 'Nothing received')return jsonify({'method': 'GET', 'msg': msg})elif request.method == "POST":data = request.jsonreturn jsonify({'method': 'POST', 'data': data})# 404 錯誤處理
@app.errorhandler(404)
def page_not_found(e):return jsonify({'error': 'Not Found'}), 404if __name__ == "__main__":app.run(host='0.0.0.0', port=8888, debug=True)

三、使用說明

  1. 運行:

    python server.py
    
  2. 測試各接口:

    • 訪問 http://localhost:8888/
    • 訪問 http://localhost:8888/hello/Alice
    • GET 請求:http://localhost:8888/echo?msg=hello
    • POST 請求:
      curl -X POST -H "Content-Type: application/json" -d '{"test": 123}' http://localhost:8888/echo
      
  3. 訪問未定義的路徑,返回 404。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89104.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis技術筆記-主從復制、哨兵與持久化實戰指南

目錄 前言 一、Redis主從復制 &#xff08;一&#xff09;Redis主從復制介紹 &#xff08;二&#xff09;基本環境準備 &#xff08;三&#xff09;工作原理 &#xff08;四&#xff09;結構模式 &#xff08;五&#xff09;一主一從&#xff08;無密碼&#xff09; 配置…

sundog公司的SilverLining SDK庫實現3d動態云層和下雨、下雨、雨夾雪效果

OSG系列文章目錄 文章目錄OSG系列文章目錄前言一、3d動態云與下雨、下雪效果不能同時出現二、3d動態云與下雨、下雪效果不能同時出現的原因三、解決辦法&#xff1a;前言 先看下效果&#xff1a;下雨 效果&#xff1a;下雪 效果&#xff1a;雨夾雪 &#x1f324;? Sundo…

Python:簡易的 TCP 服務端與客戶端示例

下面是一個完整的 TCP 服務端與客戶端示例&#xff0c;適用于 Python 3&#xff0c;使用 socket 模塊&#xff0c;并正確處理了中文傳輸與異常情況&#xff0c;支持基本的多輪通信。TCP 服務端&#xff08;server_tcp.py&#xff09;import socket HOST 127.0.0.1 # 監聽本地…

文心一言 4.5 開源深度剖析:中文霸主登場,開源引擎重塑大模型生態

> 百度用一場徹底的開源風暴,宣告中文大模型進入性能與普惠并重的新紀元——這里沒有技術黑箱,只有開發者手中躍動的創新火花。 2025年,當全球大模型競賽進入深水區,百度文心一言4.5的開源如同一顆重磅炸彈,徹底打破了“閉源即領先”的固有認知。這一次,中國團隊不…

解決“Windows 無法啟動服務”問題指南

錯誤1067&#xff1a;進程意外終止一、重啟計算機有時系統出現臨時性的服務故障&#xff0c;重啟計算機就可以有效解決問題。需要注意的是&#xff0c;在重啟之前&#xff0c;需要保存好所有未保存的工作&#xff0c;以免數據丟失。重啟完成后&#xff0c;再次嘗試啟動相關服務…

銀河麒麟(Kylin) - V10 GFB高級服務器操作系統ARM64部署昇騰910b訓練機以及Docker安裝

銀河麒麟(Kylin) - V10 GFB高級服務器操作系統ARM64部署昇騰910b訓練機以及Docker安裝 原因 項目需要使用Deepseek-r1-distill-qwen-32b來做訓練&#xff0c;在此記錄 測試環境 服務器配置 型號&#xff1a;G5680V2 CPU&#xff1a;CPU 4Kunpeng 920-5250 NPU&#xff1a;NP…

消息中間件(Kafka VS RocketMQ)

目錄 一、概要介紹 二、架構與原理 三、消費模式 1、Kafka—純拉模式 2、RocketMQ—拉模式 3、RocketMQ—推模式 4、模式對比 四、特殊消息 1、順序消息 2、消息過濾 3、延遲消息 4、事務消息 5、廣播消息 五、高吞吐 六、高可用 七、高可靠 一、概要介紹 Apa…

MyBatis級聯查詢深度解析:一對多關聯實戰指南

MyBatis級聯查詢深度解析&#xff1a;一對多關聯實戰指南在實際企業級開發中&#xff0c;單表操作僅占20%的場景&#xff0c;而80%的業務需求涉及多表關聯查詢。本文將以一對多關系為例&#xff0c;深入剖析MyBatis級聯查詢的實現原理與最佳實踐&#xff0c;助你掌握高效的數據…

搜索框的顯示與隱藏(展開與收起)

效果如下直接上代碼v-if"showAll || 0 < 3" 的意思是&#xff1a;如果 showAll 為 true&#xff0c;或者 0 小于 3&#xff0c;這個表單項就會顯示。<el-form :inline"true" class"demo-form-inline" size"default" label-width…

01 啟動流程實例

前言本文基于 Activiti 7.0.0.GA 源碼&#xff0c;研究 Activiti 如何啟動一個流程實例。審批流程圖如下圖&#xff0c;在此流程圖中&#xff0c;存在兩個UserTask節點&#xff0c;第一個節點是主管審批&#xff0c;第二個節點是產品經理審批&#xff0c;兩個節點中間有一個排他…

LeetCode--47.全排列 II

解題思路&#xff1a;1.獲取信息&#xff1a;給定一個可包含重復數字的序列&#xff0c;按任意順序返回所有不重復的全排列提示信息&#xff1a;1 < nums.length < 8-10 < nums[i] < 102.分析題目&#xff1a;相較于46題&#xff0c;它多限制了一個條件&#xff0c…

vue3 服務端渲染時請求接口沒有等到數據,但是客戶端渲染是請求接口又可以得到數據

原因是: 服務端請求 后端接收到 請求 ‘Content-Type’: ‘application/x-www-form-urlencoded; charsetUTF-8’ 直接返回錯誤的code 200000 增加 data: {} 服務端請求 后端接收到 請求 ‘Content-Type’: ‘application/json; charsetUTF-8’ 服務端請求就可以得到數據 expo…

Linux 文件操作命令大全:從入門到精通的實用指南

Linux 文件操作命令大全&#xff1a;從入門到精通的實用指南 在 Linux 系統中&#xff0c;文件操作是日常工作的核心內容之一。無論是開發者、運維工程師還是 Linux 愛好者&#xff0c;掌握常用的文件操作命令都能極大提升工作效率。本文將詳細介紹 Linux 系統中最常用的文件操…

Linux開發利器:探秘開源,構建高效——基礎開發工具指南(上)【包管理器/Vim】

???~~~~~~歡迎光臨知星小度博客空間~~~~~~??? ???零星地變得優秀~也能拼湊出星河~??? ???我們一起努力成為更好的自己~??? ???如果這一篇博客對你有幫助~別忘了點贊分享哦~??? ???如果有什么問題可以評論區留言或者私信我哦~??? ??????個人…

基于遷移學習的培養基配方開發方法

本文為學習筆記&#xff0c;原文專利&#xff1a; 中國專利公布公告 然后輸入 202110622279.7 概覽 一、問題背景 傳統培養基開發痛點&#xff1a; 數據依賴&#xff1a;需大量細胞實驗&#xff08;1000配方&#xff09;訓練專用模型 遷移性差&#xff1a;A細胞模型無法直接…

Web3.0與元宇宙:重構數字文明的技術范式與社會變革

一、技術融合&#xff1a;Web3.0與元宇宙的底層架構互補1.1 區塊鏈與智能合約&#xff1a;構建信任基石去中心化信任機制&#xff1a;Web3.0的區塊鏈技術為元宇宙提供去中心化信任框架&#xff0c;虛擬資產&#xff08;如土地、道具&#xff09;通過NFT&#xff08;非同質化代幣…

Java: OracleHelper

/*** encoding: utf-8* 版權所有 2025 ©涂聚文有限公司 * 許可信息查看&#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎* 描述&#xff1a; https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html ojdbc11* Author : geovi…

OSPFv3-一二類LSA

文章目錄OSPFv3 LSA類型Router LSANetwork LSA&#x1f3e1;作者主頁&#xff1a;點擊&#xff01; &#x1f916;Datacom專欄&#xff1a;點擊&#xff01; ??創作時間&#xff1a;2025年07月12日20點01分 OSPFv3 LSA類型 Router LSA 不再包含地址信息&#xff0c;使能 OS…

HugeGraph 【圖數據庫】JAVA調用SDK

1.引入依賴<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>28.0-jre</version> </dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifac…

軟考中級【網絡工程師】第6版教材 第2章 數據通信基礎(中)

考點分析&#xff1a;重要程度&#xff1a;???&#xff0c;本章可能是全書最難的章節&#xff0c;偏理論&#xff0c;公式多除了傳輸介質&#xff0c;其他知識點只考選擇題&#xff0c;考試一般占3 ~ 5分高頻考點&#xff1a;PCM、奈奎斯特定理、曼徹斯特編碼&#xff1b;難…