?????? 利用春節(jié)檔期間 每天學(xué)習(xí)一點python的基礎(chǔ)知識戏罢,python web (CGI)開發(fā)應(yīng)該是最后一部分搔确,總結(jié)一下整個過程。
?????? 在寫demo代碼之前先熟悉一下如何啟動python web服務(wù)器,就像初學(xué)java servlet之前得知道如何跑web程序一樣,java 我們可以用tomcat铣墨、jetty甚至weblogic 等等。python中我了解的可以在apache或者是python自帶的服務(wù)器办绝,當(dāng)然python自帶的個人覺得只適合開發(fā)調(diào)試學(xué)習(xí)用伊约,真正的部署還是apache更可靠。
???????? 直接奔入主題孕蝉,第一步啟動服務(wù)器(我這里使用python自帶屡律,想嘗試apache的可以去官網(wǎng)下載)
首先通過命令行進入我們的python工程目錄 后執(zhí)行
python -m CGIHTTPServer??
服務(wù)器啟動成功(默認端口 8000,如果想改端口號 命令后 跟上指定端口即可)
很開心降淮,立馬通過瀏覽器訪問
Ok,能訪問了超埋,立馬開始寫個簡單的用戶注冊的小功能,就是個頁面表單提交而已骤肛。
首先是html代碼:
然后就是python代碼:
刷新下瀏覽器纳本,哇果真看到html頁面文件了,果斷點進去 頁面表單出來了
迫不及待的隨便填入寫數(shù)據(jù) submit腋颠,問題來了 mmp,
很明顯 我的py文件沒有執(zhí)行吓笙,只是直接打開了這個py文件而已淑玫,查看后臺服務(wù)器果然報錯了
OSError: CGI script exit status 0x100
速度搜了一下解決辦法,一堆說法都是什么Linux系統(tǒng)換行符和windows不一樣導(dǎo)致的,還有說我的py文件權(quán)限問題 我立馬 chmod 755 ,然后重新跑絮蒿,然并暖尊搬。反正怎么折騰都是上面的一樣的問題。
?????? 突然靈光一閃土涝,是不是python版本問題佛寿,因為我pycharm里用的是python3.5,于是
python -v? 查看系統(tǒng)的python版本但壮,果不其然:2.7冀泻。 哭暈在廁所。蜡饵。弹渔。嗚嗚
想辦法升級我ubuntu安裝的python版本,好像不知道如何升級溯祸,問了下度娘肢专,搜到命令
update-alternatives--install /usr/bin/python python /usr/bin/python3 150
大概一兩分鐘執(zhí)行完成,python -v焦辅, 嗯 版本對了 3.5的博杖,準備重啟服務(wù)器
繼續(xù)執(zhí)行開始的? python -m CGIHTTPServer 命令,
要絕望了筷登,一步一個坑剃根,網(wǎng)上到處找資料,運來python3.X里沒有這個CGIHTTPServer這個模塊了仆抵,替換成了 http.server 模塊 命令也就隨之改變
python -m http.server --cgi
good,啟動成功跟继,繼續(xù)訪問頁面,submit表單镣丑,終于搞定舔糖,能跳轉(zhuǎn)了,一開始我的py文件里只寫了簡單的打印 Hello World
跑成功了莺匠,能正確展示Hello World了 好像很開心的樣子金吗。
做一個注冊小demo怎么能就打印個Hello world 呢,于是加入數(shù)據(jù)庫操作的代碼趣竣,本文開頭的那段python代碼
期待著完美插入一條數(shù)據(jù)記錄摇庙,然而沒有那么順利,報錯了 沒有 pymysql 模塊遥缕,很納悶卫袒,明明我代碼引入了pymysql模塊呀 編譯沒報錯怎么就沒這個模塊了
突然想起現(xiàn)在服務(wù)器跑的不是我pychram里安裝的python,好像明白怎么回事了
趕緊
pip install pymysql
ok单匣,安裝完成夕凝,終于大功告成宝穗,順利插入一條數(shù)據(jù)
頁面也回顯成功。
作為一個python初學(xué)者码秉,還有好多東西需要去學(xué)習(xí)逮矛,一步一個坑踩過去,就離目標越來越近转砖。
繼續(xù)學(xué)習(xí)djiango中须鼎。。府蔗。