web.py 是一個(gè)輕量級的 web 開發(fā)框架,作為初學(xué)者,我計(jì)劃先從這個(gè)學(xué)起來。https://webpy.org/ 這里是 webpy 的官方網(wǎng)站。
web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions.
下面先在 Windows 下搭建 web.py 環(huán)境,網(wǎng)上提供的方法大部分是先把源碼包下載下來,然后進(jìn)入后 python setup.py install 安裝,但是用這種方法我總是安裝失敗。原因猜測是我的 python 版本和 web.py 版本匹配問題,后來解決方法是:通過 pip 安裝。
在 Windows DOS 窗口里輸入:pip install web.py==0.40
pip 如果不識別,需要在環(huán)境變量 PATH 中添加 C:/Python27/Scripts
它會提示如下錯(cuò)誤信息:
這時(shí)輸入 python -m pip install --upgrade pip
之后再重新輸入 pip install web.py==0.40
就不再報(bào)錯(cuò)了。
安裝成功后,進(jìn)入到目錄里執(zhí)行:python hello.py
hello.py 內(nèi)容如下:
import?web
urls?=?('/hello',?'hello',
)
class?hello(object):
def?GET(self):
return?'hello?world!'
if?__name__?==?"__main__":
app?=?web.application(urls,?globals())
app.run()
瀏覽器中輸入:http://127.0.0.1:8080/hello
在阿里云上部署,也是完全一樣的操作。
我們來解釋下這段代碼:
第 1 行:import web, 在每個(gè) web.py 應(yīng)用,必須先 import web 模塊。
第 3 行:把 URL 結(jié)構(gòu)告訴 web.py。
第一部分是匹配 URL 的正則表達(dá)式,比如例子中的’/hello’,對應(yīng)你在瀏覽器中輸入的 URL 是 localhost:8080/hello,如果你把改成 hello2,你再輸入原來 URL 就無法訪問。
網(wǎng)址得對應(yīng)修改才能正常訪問,
如果你改成
urls?=?('/',?'hello',
)
直接這么輸入就行了
第二部分是接受請求的類名稱。
第 6-8 行:
對應(yīng)上面的 hello,是一個(gè)類,
GET 用于請求網(wǎng)頁文本。
下面是返回的東西,也就是我們網(wǎng)頁看到的東西。
當(dāng)有人用 GET 請求 / 時(shí),這個(gè) GET 函數(shù)隨時(shí)會被 web.py 調(diào)用。
第 10 行:
一個(gè) python 文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,第二是 import 到其他的 python 腳本中被調(diào)用(模塊重用)執(zhí)行。因此 if __name__ == 'main': 的作用就是控制這兩種情況執(zhí)行代碼的過程,在 if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執(zhí)行)才會被執(zhí)行,而 import 到其他腳本中是不會被執(zhí)行的。
第 11 行:
這會告訴 web.py 去創(chuàng)建一個(gè)基于我們剛提交的 URL 列表的 application。這個(gè) application 會在這個(gè)文件的全局命名空間中查找對應(yīng)類。
第 12 行:
這會告訴 web.py 為我們啟動上面我們寫的應(yīng)用。
參考資料:
https://www.cnblogs.com/dolphin0520/p/3343617.html
https://www.oschina.net/question/5189_4306
關(guān)注公眾號,掃碼加入嵌入式交流群: