用 Python 寫的 Web 頁(yè)面,如何讓所有人都能訪問?
本文就將介紹如何在服務(wù)器上配置你的項(xiàng)目,以下教程基于小白視角講解,適用于任何Python腳本(爬蟲、web、數(shù)據(jù)分析、自動(dòng)化等都行)
同步環(huán)境
其實(shí)整體思路就是,在本地開發(fā),然后在服務(wù)器配置和你本地一樣的環(huán)境,并將全部項(xiàng)目文件上傳到服務(wù)器,之后就像部署遠(yuǎn)程 Jupyter Notebook 一樣,使用 nohup 命令將程序掛在后臺(tái)即可。
所以假設(shè)你現(xiàn)在已經(jīng)在本地寫好你的網(wǎng)站下面可以將你本地開發(fā)用到的庫(kù)整理到 requirements.txt 中(可以通過pip freeze > requirements.txt)并ssh連接上服務(wù)器之后,執(zhí)行下方命令
- pip install -r requirements.txt
但如果你在服務(wù)器上安裝了 anaconda 的話,更多情況下,只需要進(jìn)入服務(wù)器執(zhí)行 pip install pywebio 即可。
現(xiàn)在,你的服務(wù)器開發(fā)環(huán)境就和本地一致了,下一步自然是將整個(gè)項(xiàng)目文件同步到服務(wù)器,使用 git 是比較方便的方法,使用命令行命令是常見的方法,但是對(duì)于大多數(shù)小白來說,通過 ftp 軟件點(diǎn)點(diǎn)可能更方便。
所以下面是在 mac 上使用 Termius 的同步文件過程(Windows 可以用 filezilla)首先打開軟件
點(diǎn)擊 sftp 并選擇一個(gè)服務(wù)器,之后輸入你的服務(wù)器賬號(hào)密碼進(jìn)入你的服務(wù)器文件夾(默認(rèn)root目錄下),然后創(chuàng)建一個(gè)新的文件夾用于你的項(xiàng)目
接下來只要雙擊進(jìn)入你創(chuàng)建的文件夾,并將你本地的整個(gè)文件夾拖入,等待上傳完畢即可。
掛載程序
現(xiàn)在,你的服務(wù)器有和你本地一致的開發(fā)環(huán)境與完整的項(xiàng)目文件,下面讓我們把它啟動(dòng)起來。
首先還是通過ssh工具連上服務(wù)器,之后cd進(jìn)入剛剛的新建的目錄,比如我的文件夾名稱為aliyun,我的命令就是
- cd aliyun
接下來同樣適用 nohup 啟動(dòng)并將腳本掛在后臺(tái)執(zhí)行即可,例如我的腳本為 aliyun.py,我的命令就是
- nohup python aliyun.py &
這樣就將該命令,掛在后臺(tái)執(zhí)行了,最后一步同樣是打開短端口,例如你在 PyWebIO 中使用的端口是 8888 就要去阿里云后臺(tái)防火墻/安全組開放這個(gè)端口
至此,你就可以通過你的公網(wǎng)IP:端口,訪問你的web項(xiàng)目,還有一個(gè)常見的問題,如何關(guān)閉這個(gè)端口/程序?
我們可以通過端口反查進(jìn)程號(hào)
也可以根據(jù)命令查找進(jìn)程pid(ps -ef|grep python)
然后將對(duì)應(yīng)的進(jìn)程kill掉,并在修改完代碼后重新啟動(dòng)即可,這些就屬于運(yùn)維相關(guān)知識(shí),網(wǎng)上資料很多,感興趣的可以自己查閱。
自定義頁(yè)腳
最近很多人問,怎么修改默認(rèn)頁(yè)面中頁(yè)腳的顯示文字,或者去掉默認(rèn)頁(yè)面的Powered by PyWebIO
就像我的頁(yè)面一樣,顯示早起Python,并且點(diǎn)擊跳轉(zhuǎn)到我設(shè)置好的頁(yè)面
其實(shí)稍微對(duì)web開發(fā)懂一點(diǎn)的,都會(huì)知道這是額外加入了html元素,既然沒有修改的命令,說明這個(gè)html肯定是寫死在某個(gè)文件夾中。
在mac下,我們可以打開anaconda安裝目錄,并根據(jù)下面的路徑中找到 index.html
之后使用任意代碼編輯器修改框中部分即可
在 Windows 或者 centos 下也是類似,找到 pywebio 對(duì)應(yīng)的目錄,修改對(duì)應(yīng)文件即可,大家可以自己研究!