使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的操作過(guò)程
1.前言
Python作為熱度比較高的編程語(yǔ)言,其語(yǔ)法簡(jiǎn)單且語(yǔ)句清晰,而且python有良好的兼容性,可以輕松的和其他編程語(yǔ)言((比如C/C++))建立的模塊連接起來(lái),而且python豐富強(qiáng)大的庫(kù),經(jīng)過(guò)封裝可以輕松調(diào)用,因此深受歡迎。
今天我們就嘗試用python,建立一個(gè)簡(jiǎn)單的http服務(wù)器,用來(lái)展示本地電腦上指定的目錄和文件。
2.本地http服務(wù)器搭建
一般來(lái)說(shuō),Python的簡(jiǎn)單http服務(wù)器不依賴(lài)Apache、IIS等這些復(fù)雜的服務(wù)器程序,因?yàn)槠渥詭Я酥恍枰恍忻罹湍芙ttp服務(wù)。但相對(duì)的,這個(gè)簡(jiǎn)單http服務(wù)也沒(méi)法提供復(fù)雜功能,只能提供相對(duì)簡(jiǎn)單的目錄服務(wù)。但對(duì)于想要學(xué)習(xí)和熟悉python,這又是必須進(jìn)行的一步。
2.1.Python的安裝和設(shè)置
首先,我們需要在本地安裝python程序。Python程序可以在其官網(wǎng)(www.python.org/)找到對(duì)應(yīng)操作系統(tǒng)版本下載。筆者使用的是Windows操作系統(tǒng),因此選擇Windows版本下載。
Python下載完成后,直接點(diǎn)擊安裝程序.exe即可進(jìn)行安裝。同時(shí)需要注意的是,在安裝過(guò)程中,需要注意勾選 Add python.exe to PATH
選項(xiàng)。
完成python程序的安裝后,我們就可以著手建立python的http服務(wù)器了
2.2.Python服務(wù)器設(shè)置和測(cè)試
由于python內(nèi)建了簡(jiǎn)單http服務(wù)包,因此對(duì)于python來(lái)說(shuō),只需輸入一行命令,就能輕松打開(kāi)http服務(wù)。當(dāng)然,要運(yùn)行網(wǎng)頁(yè),就需要網(wǎng)頁(yè)有顯示內(nèi)容。因此我們可以先建立一個(gè)用于存放網(wǎng)頁(yè)文件的文件夾。例如筆者在本地電腦的E盤(pán)下新建了一個(gè)“test”文件夾
接著,以管理員身份運(yùn)行本地電腦的 命令提示符
界面,并輸入命令轉(zhuǎn)入該文件所存放的硬盤(pán)
e:
再轉(zhuǎn)入打算共享的文件夾
cd test
接著輸入命令 啟動(dòng)http服務(wù)
如果Python版本為2.x,輸入命令
python -m SimpleHTTPServer 8081
如果Python版本為3.x,輸入命令
python -m http.server 8001
其中的8081為打算搭建的服務(wù)器的輸出端口,只要選擇沒(méi)有被占用的端口即可。如果出現(xiàn)防火墻的提示信息,只要選擇 允許訪問(wèn)
即可。
命令行輸入完畢后,python給出反饋 Serving HTTP on 0.0.0.0 port 8081 ...
,就說(shuō)明我們python的http服務(wù)已經(jīng)成功開(kāi)啟了,在本地8081端口下。
接著我們?cè)诒镜仉娔X上的瀏覽器地址欄中,輸入 localhost:8081
,就能打開(kāi)打算分享的文件夾下的文件。
能看到這些內(nèi)容,就說(shuō)明本地電腦上python的http服務(wù)已經(jīng)開(kāi)啟,并且已經(jīng)可以查閱到這個(gè)文件夾下的文件。同樣的,如果我們?cè)谶@個(gè)文件夾下放入網(wǎng)頁(yè)文件,也能夠顯示為網(wǎng)頁(yè)。
此時(shí)在同一局域網(wǎng)下的設(shè)備,只要在瀏覽器中輸入本地電腦的ip地址+端口號(hào)(具體格式為192.168.XXX.XXX:端口號(hào)),就能顯示出python的網(wǎng)頁(yè)。
不過(guò),不能在公共互聯(lián)網(wǎng)訪問(wèn)的網(wǎng)頁(yè)總覺(jué)得缺少靈魂,因此我們可以借助cpolar內(nèi)網(wǎng)穿透,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,讓我們可以在公共互聯(lián)網(wǎng)條件下,訪問(wèn)到python。
3.cpolar的安裝和注冊(cè)
同樣的,我們可以在cpolar的官網(wǎng)(https://www.cpolar.com/)找到對(duì)應(yīng)操作系統(tǒng)版本的軟件,筆者這里也是選擇Windows版本。
Cpolar軟件下載完成后,將壓縮包解壓,并雙擊其中的 .msi文件
,即可自動(dòng)進(jìn)行安裝,我們只要一路點(diǎn)擊 Next
即可。
由于cpolar會(huì)為每個(gè)用戶(hù)創(chuàng)建獨(dú)立的數(shù)據(jù)隧道,并輔以用戶(hù)密碼和token碼保證數(shù)據(jù)安全,因此我們?cè)谑褂胏polar之前,需要進(jìn)行用戶(hù)注冊(cè)。注冊(cè)過(guò)程也非常簡(jiǎn)單,只要在cpolar主頁(yè)右上角點(diǎn)擊 用戶(hù)注冊(cè)
,在注冊(cè)頁(yè)面填入必要信息,就能完成注冊(cè)。
3.1 Cpolar云端設(shè)置
完成cpolar的安裝和注冊(cè)后,我們就可以著手使用cpolar,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,將本地電腦的python網(wǎng)頁(yè)與公共互聯(lián)網(wǎng)連接起來(lái)。需要注意的是,cpolar免費(fèi)版的數(shù)據(jù)隧道每24小時(shí)重置一次。筆者并不想每天進(jìn)行重置數(shù)據(jù)隧道設(shè)置,因此將cpolar升級(jí)至vip版,以便能獲得能長(zhǎng)期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。
要生成長(zhǎng)期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,我們要先訪問(wèn)cpolar官網(wǎng)并登錄,并在“儀表盤(pán)”頁(yè)面左側(cè),找到并點(diǎn)擊 預(yù)留
按鈕,進(jìn)入“預(yù)留”頁(yè)面。
在“預(yù)留”頁(yè)面中,我們可以看到cpolar提供了多種協(xié)議的數(shù)據(jù)隧道保留項(xiàng)目。而python服務(wù)器是http協(xié)議,因此我們找到 保留二級(jí)子域名
欄位。當(dāng)然,如果已經(jīng)向域名供應(yīng)商購(gòu)買(mǎi)了自己的域名的,也可以選擇“保留自定義域名”欄位。
在“保留二級(jí)子域名”欄位,我們需要對(duì)打算保留的二級(jí)子域名進(jìn)行信息設(shè)置,而這些設(shè)置的信息,也會(huì)成為我們?cè)诠不ヂ?lián)網(wǎng)訪問(wèn)本地python服務(wù)器的隧道入口(公共互聯(lián)網(wǎng)地址的一部分)。具體需要設(shè)置的信息為:
地區(qū) :服務(wù)器所在區(qū)域,就近選擇即可
二級(jí)域名 會(huì)最終出現(xiàn)在生成的公共互聯(lián)網(wǎng)地址中,作為網(wǎng)絡(luò)地址的標(biāo)識(shí)之一
描述 可以看做這條數(shù)據(jù)隧道的描述,能夠與其他隧道區(qū)分開(kāi)即可
輸入這幾項(xiàng)設(shè)置后,就可以點(diǎn)擊右側(cè)的 保留
按鈕,將這條數(shù)據(jù)隧道保留下來(lái)。如果我們不想要這條隧道的入口了,也可以點(diǎn)擊右側(cè)的“x”,輕松將隧道刪除
3.2 Cpolar本地設(shè)置
完成cpolar云端設(shè)置后,我們回到本地電腦上,打開(kāi)并登錄cpolar客戶(hù)端(可以在瀏覽器中輸入localhost:9200直接訪問(wèn),也可以在開(kāi)始菜單中點(diǎn)擊cpolar客戶(hù)端的快捷方式)。
點(diǎn)擊客戶(hù)端主界面左側(cè) 隧道管理
—— 創(chuàng)建隧道
按鈕,進(jìn)入本地隧道創(chuàng)建頁(yè)面(如果要?jiǎng)?chuàng)建每24小時(shí)重置地址的臨時(shí)數(shù)據(jù)隧道,可直接在此進(jìn)行設(shè)置,不必再cpolar官網(wǎng)設(shè)置空白數(shù)據(jù)隧道)。
在這個(gè)頁(yè)面,同樣需要進(jìn)行幾項(xiàng)信息設(shè)置,這些信息設(shè)置包括:
隧道名稱(chēng) ——可以看做cpolar本地的隧道信息注釋?zhuān)灰奖阄覀兎直婕纯桑?/blockquote>協(xié)議 ——tomcat輸出的是web網(wǎng)頁(yè),因此選擇http協(xié)議;本地地址 ——本地地址即為本地網(wǎng)站的輸出端口號(hào),我們之前設(shè)置了8081為輸出端口,因此這里也填入8081;域名類(lèi)型 ——在這個(gè)例子中,我們已經(jīng)在cpolar云端預(yù)留了二級(jí)子域名的數(shù)據(jù)隧道,因此勾選“二級(jí)子域名”(如果預(yù)留的是自定義域名,則勾選自定義域名),并在下一行“Sub Domain”欄中填入預(yù)留的二級(jí)子域名,這里我們填入“pythonweb”(如果只是創(chuàng)建臨時(shí)數(shù)據(jù)隧道,則直接勾選“隨機(jī)域名”,由cpolar客戶(hù)端自行生成網(wǎng)絡(luò)地址);地區(qū) ——與cpolar云端設(shè)置時(shí)一樣,我們依照實(shí)際所在地就近填寫(xiě);
完成這些設(shè)置后,就可以點(diǎn)擊頁(yè)面下方的
創(chuàng)建
按鈕,將本地python服務(wù)器網(wǎng)頁(yè)與cpolar云端保留的二級(jí)子域名連結(jié)起來(lái),生成一條完整的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。隧道創(chuàng)建完成后,cpolar會(huì)自動(dòng)跳轉(zhuǎn)至
隧道管理
——隧道列表
頁(yè)面,在這個(gè)頁(yè)面看到數(shù)據(jù)隧道的狀態(tài)(是否暢通),或是控制隧道的開(kāi)啟、關(guān)閉或刪除。如果需要對(duì)隧道的信息進(jìn)行變更,也可以通過(guò)這里的“編輯”按鈕進(jìn)行
4.公網(wǎng)訪問(wèn)測(cè)試
數(shù)據(jù)隧道建立完成后,我們可以點(diǎn)擊cpolar客戶(hù)端左側(cè)
狀態(tài)
——在線隧道列表
。找到能夠訪問(wèn)本地python服務(wù)器頁(yè)面的公共互聯(lián)網(wǎng)地址。
只要將這個(gè)地址輸入瀏覽器地址,就能輕松訪問(wèn)到本地電腦上的python服務(wù)器頁(yè)面。
5.結(jié)語(yǔ)
至此,我們成功的使用python建立一個(gè)簡(jiǎn)單的服務(wù)器頁(yè)面,并且通過(guò)cpolar為其創(chuàng)建了一條能夠穿透內(nèi)網(wǎng)屏障的數(shù)據(jù)隧道,將這個(gè)python網(wǎng)頁(yè)發(fā)布到公共互聯(lián)網(wǎng)上。其實(shí),只要知道網(wǎng)頁(yè)(或軟件)的輸出端口號(hào),我們都可以使用cpolar穿透內(nèi)網(wǎng),讓我們?cè)诠不ヂ?lián)網(wǎng)上訪問(wèn)到本地的網(wǎng)頁(yè)(或軟件)。
到此這篇關(guān)于使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的文章就介紹到這了,更多相關(guān)Python搭建服務(wù)器公網(wǎng)展示本地電腦文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
虛擬機(jī)下載python是否需要聯(lián)網(wǎng)
在本篇文章里小編給大家分享的是一篇關(guān)于虛擬機(jī)下載python是否需要聯(lián)網(wǎng)的相關(guān)文章,有需要的朋友們可以參考下。2020-07-07使用Python第三方庫(kù)發(fā)送電子郵件的示例代碼
本文主要介紹了使用Python第三方庫(kù)發(fā)送電子郵件的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的步驟
這篇文章主要介紹了Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python?for循環(huán)詳細(xì)講解(附代碼實(shí)例)
這篇文章主要給大家介紹了關(guān)于Python?for循環(huán)詳細(xì)講解的相關(guān)資料,在Python中,for循環(huán)是一種常用的控制結(jié)構(gòu),用于遍歷序列(如列表、元組、字符串等)中的元素,需要的朋友可以參考下2024-03-03python PIL Image 圖像處理基本操作實(shí)例
這篇文章主要介紹了python PIL Image 圖像處理基本操作實(shí)例包括圖片加載、灰度圖,圖像通道分離和合并,在圖像上輸出文字,圖像縮放,圖像閾值分割、 二值化,圖像裁剪需要的朋友可以參考下2022-04-04python實(shí)現(xiàn)名片管理系統(tǒng)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)名片管理系統(tǒng)項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04Python 利用內(nèi)置set函數(shù)對(duì)字符串和列表進(jìn)行去重的方法
今天小編就為大家分享一篇Python 利用內(nèi)置set函數(shù)對(duì)字符串和列表進(jìn)行去重的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06python中os.stat().st_size、os.path.getsize()獲取文件大小
本文介紹了使用os.stat()和os.path.getsize()函數(shù)獲取文件大小,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01