成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python輕量級Web框架:Bottle庫!

開發 后端
Bottle是一個超輕量級的python庫。說是庫,其本身只由一個4000行左右的文件構成,并且不需要任何依賴,只靠python標準庫即可運作。

和它本身的輕便一樣,Bottle庫的使用也十分簡單。相信在看到本文前,讀者對python也已經有了簡單的了解。那么究竟何種神秘的操作,才能用百行代碼完成一個服務器的功能?讓我們拭目以待。

1. Bottle庫安裝

1)使用pip安裝

2)下載Bottle文件

https://github.com/bottlepy/bottle/blob/master/bottle.py

2.“HelloWorld!”

所謂萬事功成先HelloWorld,從這個簡單的示例中,了解Bottle的基本機制。

先上代碼:

首先我們從bottle庫中導入get和run兩個方法。

接下來,我們要構建一個網站,首先要有一個ip地址和一個端口(port),這部分功能由run來完成,在測試環節我們就使用127.0.0.1(本機地址)和80端口(瀏覽器默認端口)來:

運行這段代碼 python HelloWorld.py

這樣網站服務器就處于運行狀態啦,打開瀏覽器,輸入127.0.0.1(:80)

熟悉的404,錯誤提示Not found:‘/’。這是當然的,因為網站除了服務器之外,還有很重要的成分——網頁啊!

瀏覽器訪問ip地址時,即向這個ip發送了get請求,等待返回網頁數據,那么我們的bottle庫里,封裝了get方法,用來實現這一過程。

代碼如下:

不知道大家是否認識def上面的@符號,這個符號是python語法中的裝飾器的意思,可以簡單的理解為使用get函數對homepage進行修飾。在這里,@get(‘/’)即將homepage裝飾成了瀏覽器發送GET 127.0.0.1/這個請求時的相應函數。可以做任意處理,最后返回get請求的相應。這里就返回了簡單的HelloWorld頁面,再次運行,就有這樣的效果:

也可以使用bottle中封裝的template方法,將網頁數據單獨寫在.tpl文件中,示例如下:

run函數還有一個參數reloader,將其設置為True將會打開自動重載,網頁服務器會在你做出任何更改時自動重載服務器,可實現網站的熱更新。

3. 動態路由及文件下載

如上我們使用的get(‘/’),本質上是一種靜態路由,在服務器運行前就確定好的地址可以用這種方法來進行路由。

那么如果是服務器運行時呢?比如說網站服務器上存取文件,當然不能采取靜態的方式,這時候我們就可以采用動態路由。

Bottle的動態路由,由route方法實現,和get類似,也是采用裝飾器來修飾函數實現路由功能。

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

而動態路由即可為文件路由提供便利。一個服務器中可能存放著成百上千的文件,不可能每個都依靠靜態地址。

這里我們可以看到一個新的函數static_file,第一個參數為文件名,第二個參數為根目錄地址(即這個文件所在的位置),當前文件系統為:

--HelloWorld.py

--store1.txt

訪問瀏覽器得到

當然你也可以把文件放在文件夾里,只要把root參數更換成文件夾的地址即可。

4. POST的響應與文件上傳

如果要實現更復雜的功能,我們不但需要使用GET方法,也需要POST方法。這里我們使用HTML語言中的Form來演示Bottle庫對于POST請求的響應。

首先我們實現一個上傳文件的窗口,如上。

此處的頁面為一個簡單的表單提交界面,在此不做詳細介紹,打開頁面如下:

接下來的POST響應,代碼如下:

從Bottle庫中導入post方法和request。

和get方法類似,使用post裝飾響應函數,之后在函數體中使用request即可獲取網站服務器接受到的post請求體。request.forms.get()方法可以將表單中對應Key的字符串取出,request.files.get()方法可以將表單中對應Key的文件取出,使用save方法將數據儲存就實現了文件的上傳。

接下來我們進行一次測試:

點擊上傳后,我們打開服務器根目錄(就是python文件的位置),查看發現文件已經上傳成功!

5. 小結

在完成這些功能后,你一定想把bottle部署到網絡上吧,畢竟只在本地運行的話,網站又有什么作用呢?

清華網為我們每一個網絡接入點都提供了公網ip,在cmd中使用ipconfig查看ip地址,將run中的運行參數改為你的公網ip,然后在任何一臺設備的瀏覽器上(建議手機,電腦瀏覽器有時候會很慢)輸入ip地址和端口號(默認80),就可以訪問啦!

Bottle庫還有很多強大的功能,Cookie的讀寫、插件的安裝卸載與禁用都不在話下,也可以將Bottle部署到其他的服務器,非常簡單的實現多線程,這些功能有待讀者大大發掘哦!

責任編輯:龐桂玉 來源: Python程序員
相關推薦

2023-06-13 13:38:00

FlaskPython

2023-11-24 11:11:08

Python數據庫

2017-11-09 17:17:36

KotlinJavaWeb

2020-11-11 12:13:59

JS

2021-10-27 11:29:32

框架Web開發

2023-06-27 16:42:18

Tinygrad深度學習工具

2019-03-10 20:55:11

瀏覽器Midori開源

2021-07-01 09:08:03

Python網頁開發Flask

2021-06-26 10:03:35

Python框架Flask

2013-06-20 10:28:39

MVVM框架avalon架構

2010-07-07 09:30:41

WebMatrixWeb開發

2011-03-02 10:03:44

SaturnJSJS

2022-02-12 21:05:11

異步爬蟲框架

2011-09-08 10:42:38

Web服務器Nginx

2022-07-15 16:39:19

PythonWhoosh工具

2014-04-21 10:01:45

前后端分離

2021-03-02 09:35:33

Python循環開發

2012-05-21 21:34:51

iOS

2010-07-02 10:14:36

2009-07-14 18:05:28

輕量級Swing組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩国产三级 | 欧美aⅴ片 | 国产馆| 伊人亚洲| 日本不卡一区 | 日本在线网址 | 亚洲精品粉嫩美女一区 | 国产精品精品视频一区二区三区 | 精品国产31久久久久久 | 国产精品视频不卡 | 国产日韩视频 | 国产精品久久 | 一区二区成人 | 国产欧美一区二区三区在线看蜜臀 | 国产亚洲黄色片 | 色综合久 | 中文字幕乱码一区二区三区 | 成人在线播放 | 欧美日产国产成人免费图片 | 国产日韩av一区二区 | 9久久| 国产色99 | 91天堂网| 欧美激情在线一区二区三区 | 成人免费小视频 | 欧美视频精品 | 久久高清精品 | av影音资源 | 亚洲一区二区三区在线视频 | 亚洲精品18 | 欧美成人免费在线视频 | 成人在线视频免费看 | 欧美久久久久久 | 2018国产大陆天天弄 | 国产一区二区三区免费 | 午夜一区 | 日韩一区二区三区在线观看 | 青青艹在线视频 | 欧美精品欧美精品系列 | 男人的天堂久久 | 99免费视频 |