欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實(shí)現(xiàn)快速搭建本地HTTP服務(wù)器

 更新時(shí)間:2025年04月03日 14:27:04   作者:探客白澤  
這篇文章主要介紹了如何使用Python快速搭建本地HTTP服務(wù)器,輕松實(shí)現(xiàn)一鍵 HTTP 文件共享,同時(shí)結(jié)合二維碼技術(shù),讓訪問更簡單,感興趣的小伙伴可以了解下

1. 概述

你是否曾經(jīng)遇到過這樣的場景:

  • 需要在多臺(tái)設(shè)備間快速傳輸文件,但懶得插 U 盤?
  • 想臨時(shí)共享一個(gè)本地文件,但又不想折騰 FTP、網(wǎng)盤、郵件?
  • 希望一鍵開啟本地 HTTP 服務(wù)器,還能生成二維碼,手機(jī)直接掃碼訪問?

今天,我們就用 Python 輕松實(shí)現(xiàn) “一鍵 HTTP 文件共享”,同時(shí)結(jié)合二維碼技術(shù),讓訪問更簡單。最終,我們還將用 PyQt6 開發(fā)一個(gè)簡潔美觀的 GUI,讓整個(gè)工具更易用!

本文將帶你完整實(shí)現(xiàn)該工具,包括:

用 Python 快速搭建本地 HTTP 服務(wù)器(支持 IPv4 & IPv6)

自動(dòng)生成訪問地址的二維碼,手機(jī)掃一掃即可訪問

打造 PyQt6 圖形界面,一鍵選擇共享目錄并啟動(dòng)服務(wù)

準(zhǔn)備好了嗎?讓我們開始吧!

2. 快速搭建 HTTP 文件共享服務(wù)

2.1 核心思路

Python 自帶 http.server 模塊,可以快速啟動(dòng)一個(gè) HTTP 服務(wù)器。我們基于它創(chuàng)建支持 IPv4 和 IPv6 的雙棧服務(wù)器,并允許用戶自定義共享目錄。

2.2 代碼實(shí)現(xiàn)

import http.server
import socketserver
import threading

class Server:
    def __init__(self, port=80):
        self.port = port
        self.stop_event = threading.Event()

    def run_server(self, ipv4="0.0.0.0", ipv6="::"):
        self.stop_event.clear()
        threading.Thread(target=self.start_http_server_v4, args=(ipv4, self.port)).start()
        threading.Thread(target=self.start_http_server_v6, args=(ipv6, self.port)).start()

    def start_http_server_v4(self, ip, port):
        with socketserver.TCPServer((ip, port), http.server.SimpleHTTPRequestHandler) as httpd:
            httpd.serve_forever()

    def start_http_server_v6(self, ip, port):
        with socketserver.TCPServer((ip, port), http.server.SimpleHTTPRequestHandler) as httpd:
            httpd.serve_forever()

2.3 代碼解讀

  • run_server() 方法啟動(dòng)兩個(gè)線程,同時(shí)運(yùn)行 IPv4 和 IPv6 服務(wù)器。
  • http.server.SimpleHTTPRequestHandler 允許 HTTP 服務(wù)器直接提供文件下載。
  • serve_forever() 讓服務(wù)器一直運(yùn)行,直到手動(dòng)停止。

這樣,我們的本地 HTTP 服務(wù)器就可以隨時(shí)啟動(dòng),提供文件共享服務(wù)!

3. 二維碼訪問:手機(jī)掃一掃,文件即刻傳輸

3.1 為什么用二維碼

問題:服務(wù)器啟動(dòng)后,如何讓手機(jī)或其他設(shè)備快速訪問?

解決方案:生成一個(gè)二維碼,直接嵌入本地 HTTP 服務(wù)器的訪問 URL,用戶用手機(jī)掃描即可訪問!

3.2 代碼實(shí)現(xiàn)

import qrcode
import clipboard

def generate_qr_and_copy(url):
    qr = qrcode.QRCode(
        version=1, error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10, border=2
    )
    qr.add_data(url)
    qr.make(fit=True)
    qr.print_ascii(invert=True)
    clipboard.copy(url)
    print(f"URL {url} 已復(fù)制到剪貼板")

3.3 代碼解讀

  • qrcode.QRCode 生成二維碼,并自動(dòng)調(diào)整大小。
  • qr.print_ascii(invert=True) 在終端打印二維碼,便于調(diào)試。
  • clipboard.copy(url) 復(fù)制 URL,方便直接粘貼使用。

現(xiàn)在,用戶只需要掃描二維碼,即可訪問共享的文件!

4. PyQt6 圖形界面:讓工具更易用!

4.1 為什么要 GUI

雖然命令行很強(qiáng)大,但對(duì)于非開發(fā)者來說,圖形界面更直觀。我們使用 PyQt6 創(chuàng)建一個(gè)簡潔的 UI,用戶可以一鍵選擇共享目錄,并獲取訪問二維碼。

4.2 代碼實(shí)現(xiàn)

from PyQt6 import QtWidgets, QtCore
from PyQt6.QtGui import QGuiApplication

class Ui_MainWindow:
    def setupUi(self, MainWindow):
        screen = QGuiApplication.primaryScreen().geometry()
        window_width, window_height = int(screen.width() / 6), int(screen.height() / 3)
        MainWindow.resize(window_width, window_height)
        
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.gridLayout = QtWidgets.QGridLayout(self.centralWidget)
        
        self.label = QtWidgets.QLabel("二維碼", self.centralWidget)
        self.gridLayout.addWidget(self.label, 0, 0)

        self.comboBox = QtWidgets.QComboBox(self.centralWidget)
        self.comboBox.addItems(["默認(rèn)目錄", "剪切板目錄", "自定義目錄"])
        self.gridLayout.addWidget(self.comboBox, 1, 0)

        self.url_label = QtWidgets.QLabel("服務(wù)地址", self.centralWidget)
        self.gridLayout.addWidget(self.url_label, 2, 0)

        MainWindow.setCentralWidget(self.centralWidget)

4.3 界面功能

選擇共享目錄

顯示服務(wù)器訪問地址

二維碼自動(dòng)更新

5. 終極效果演示

  • 運(yùn)行 GUI,選擇共享目錄
  • 點(diǎn)擊“啟動(dòng)服務(wù)器”
  • 獲取 URL 并自動(dòng)生成二維碼
  • 手機(jī)掃碼即可訪問!

這樣,我們的“Python 本地 HTTP 文件共享 + 二維碼訪問”工具就完成了!

6. 總結(jié) & 未來優(yōu)化方向

6.1 主要收獲

? 你學(xué)會(huì)了 如何用 Python 搭建本地 HTTP 服務(wù)器

? 你掌握了 二維碼的生成和自動(dòng)復(fù)制功能

? 你了解了 如何用 PyQt6 創(chuàng)建 GUI 界面

6.2 未來優(yōu)化

支持文件上傳:目前只支持下載,可以加上文件上傳功能

支持 HTTPS 加密:增強(qiáng)安全性,防止中間人攻擊

優(yōu)化界面美觀度:增加主題風(fēng)格、自定義端口等

到此這篇關(guān)于使用Python實(shí)現(xiàn)快速搭建本地HTTP服務(wù)器的文章就介紹到這了,更多相關(guān)Python本地HTTP服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python-json校驗(yàn)-jsonpath解析

    python-json校驗(yàn)-jsonpath解析

    這篇文章主要介紹了python-json校驗(yàn)-jsonpath,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python?ModuleNotFoundError:?No?module?named?‘xxx‘可能的解決方案大全

    Python?ModuleNotFoundError:?No?module?named?‘xxx‘可能的解決方

    本文主要介紹了Python?ModuleNotFoundError:?No?module?named?‘xxx‘可能的解決方案大全,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧Chat?Gpt<BR>
    2023-07-07
  • python 實(shí)現(xiàn)aes256加密

    python 實(shí)現(xiàn)aes256加密

    這篇文章主要介紹了python 如何實(shí)現(xiàn)aes256加密,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python最長回文串算法

    python最長回文串算法

    這篇文章主要為大家詳細(xì)介紹了python最長回文串算法的實(shí)踐,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 淺談終端直接執(zhí)行py文件,不需要python命令

    淺談終端直接執(zhí)行py文件,不需要python命令

    下面小編就為大家?guī)硪黄獪\談終端直接執(zhí)行py文件,不需要python命令。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Python的pytest測試框架中fixture的使用詳解

    Python的pytest測試框架中fixture的使用詳解

    這篇文章主要介紹了pytest中fixture的使用詳解,pytest是一個(gè)非常成熟的全功能的Python測試框架,能夠支持簡單的單元測試和復(fù)雜的功能測試,還可以用來做selenium/appnium等自動(dòng)化測試、接口自動(dòng)化測試,需要的朋友可以參考下
    2023-07-07
  • opencv-python圖像配準(zhǔn)(匹配和疊加)的實(shí)現(xiàn)

    opencv-python圖像配準(zhǔn)(匹配和疊加)的實(shí)現(xiàn)

    圖像配準(zhǔn)需是指對(duì)不同條件下得到的兩幅或多幅圖像進(jìn)行匹配、疊加的過程。本文詳細(xì)的介紹了如何使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Python語言編寫智力問答小游戲功能

    Python語言編寫智力問答小游戲功能

    這篇文章主要介紹了使用Python代碼語言簡單編寫一個(gè)輕松益智的小游戲,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 使用python和opencv的mask實(shí)現(xiàn)摳圖疊加

    使用python和opencv的mask實(shí)現(xiàn)摳圖疊加

    這篇文章主要介紹了使用python和opencv的mask實(shí)現(xiàn)摳圖疊加操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    這篇文章主要介紹了OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03

最新評(píng)論