Python 輕量級(jí) Web 框架:Bottle 庫(kù)!

Bottle是一個(gè)超輕量級(jí)的python庫(kù)。說(shuō)是庫(kù),其本身只由一個(gè)4000行左右的文件構(gòu)成,并且不需要任何依賴(lài),只靠python標(biāo)準(zhǔn)庫(kù)即可運(yùn)作。
和它本身的輕便一樣,Bottle庫(kù)的使用也十分簡(jiǎn)單。相信在看到本文前,讀者對(duì)python也已經(jīng)有了簡(jiǎn)單的了解。那么究竟何種神秘的操作,才能用百行代碼完成一個(gè)服務(wù)器的功能?讓我們拭目以待。
一. Bottle庫(kù)安裝

1)使用pip安裝
pip install bottle
2)下載Bottle文件
https://github.com/bottlepy/bottle/blob/master/bottle.py
二.“HelloWorld!”

所謂萬(wàn)事功成先HelloWorld,從這個(gè)簡(jiǎn)單的示例中,了解Bottle的基本機(jī)制。



熟悉的404,錯(cuò)誤提示Not found:‘/’。這是當(dāng)然的,因?yàn)榫W(wǎng)站除了服務(wù)器之外,還有很重要的成分——網(wǎng)頁(yè)?。?/span>
瀏覽器訪問(wèn)ip地址時(shí),即向這個(gè)ip發(fā)送了get請(qǐng)求,等待返回網(wǎng)頁(yè)數(shù)據(jù),那么我們的bottle庫(kù)里,封裝了get方法,用來(lái)實(shí)現(xiàn)這一過(guò)程。

不知道大家是否認(rèn)識(shí)def上面的@符號(hào),這個(gè)符號(hào)是python語(yǔ)法中的裝飾器的意思,可以簡(jiǎn)單的理解為使用get函數(shù)對(duì)homepage進(jìn)行修飾。在這里,@get(‘/’)即將homepage裝飾成了瀏覽器發(fā)送GET 127.0.0.1/這個(gè)請(qǐng)求時(shí)的相應(yīng)函數(shù)??梢宰鋈我馓幚恚詈蠓祷豨et請(qǐng)求的相應(yīng)。這里就返回了簡(jiǎn)單的HelloWorld頁(yè)面,再次運(yùn)行,就有這樣的效果:

也可以使用bottle中封裝的template方法,將網(wǎng)頁(yè)數(shù)據(jù)單獨(dú)寫(xiě)在.tpl文件中,示例如下:

三.動(dòng)態(tài)路由及文件下載

如上我們使用的get(‘/’),本質(zhì)上是一種靜態(tài)路由,在服務(wù)器運(yùn)行前就確定好的地址可以用這種方法來(lái)進(jìn)行路由。
那么如果是服務(wù)器運(yùn)行時(shí)呢?比如說(shuō)網(wǎng)站服務(wù)器上存取文件,當(dāng)然不能采取靜態(tài)的方式,這時(shí)候我們就可以采用動(dòng)態(tài)路由。

這里我們看到在裝飾器的參量中出現(xiàn)了一個(gè)與眾不同的東西:'name'。被其修飾的函數(shù)的參數(shù)與冒號(hào)后的參量同名,而在函數(shù)中,就可以使用name這個(gè)參數(shù)作為處理變量,最后返回響應(yīng)即可。



當(dāng)然你也可以把文件放在文件夾里,只要把root參數(shù)更換成文件夾的地址即可。
四. POST的響應(yīng)與文件上傳


首先我們實(shí)現(xiàn)一個(gè)上傳文件的窗口,如上。
此處的頁(yè)面為一個(gè)簡(jiǎn)單的表單提交界面,在此不做詳細(xì)介紹,打開(kāi)頁(yè)面如下:


和get方法類(lèi)似,使用post裝飾響應(yīng)函數(shù),之后在函數(shù)體中使用request即可獲取網(wǎng)站服務(wù)器接受到的post請(qǐng)求體。request.forms.get()方法可以將表單中對(duì)應(yīng)Key的字符串取出,request.files.get()方法可以將表單中對(duì)應(yīng)Key的文件取出,使用save方法將數(shù)據(jù)儲(chǔ)存就實(shí)現(xiàn)了文件的上傳。


五.小結(jié)

在完成這些功能后,你一定想把bottle部署到網(wǎng)絡(luò)上吧,畢竟只在本地運(yùn)行的話(huà),網(wǎng)站又有什么作用呢?
清華網(wǎng)為我們每一個(gè)網(wǎng)絡(luò)接入點(diǎn)都提供了公網(wǎng)ip,在cmd中使用ipconfig查看ip地址,將run中的運(yùn)行參數(shù)改為你的公網(wǎng)ip,然后在任何一臺(tái)設(shè)備的瀏覽器上(建議手機(jī),電腦瀏覽器有時(shí)候會(huì)很慢)輸入ip地址和端口號(hào)(默認(rèn)80),就可以訪問(wèn)啦!
原文出自:https://blog.csdn.net/qiqi1220/article/details/126030157
訓(xùn)練營(yíng)本周六開(kāi)課,如想進(jìn)一步提升測(cè)開(kāi)技能,推薦閱讀:
END

長(zhǎng)按二維碼/微信掃碼 添加作者
