web.py是一個(gè)輕量級(jí)的web開(kāi)發(fā)框架,,作為初學(xué)者,我計(jì)劃先從這個(gè)學(xué)起來(lái),。https:/// 這里是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)上提供的方法大部分是先把源碼包下載下來(lái),然后進(jìn)入后python setup.py install 安裝,,但是用這種方法我總是安裝失敗,。原因猜測(cè)是我的python版本和web.py版本匹配問(wèn)題,后來(lái)解決方法是:通過(guò)pip安裝,。 在Windows DOS窗口里輸入:pip install web.py==0.40 pip如果不識(shí)別,,需要在環(huán)境變量PATH中添加C:/Python27/Scripts 它會(huì)提示如下錯(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 在阿里云上部署,,也是完全一樣的操作。 我們來(lái)解釋下這段代碼: 第1行:import web, 在每個(gè)web.py 應(yīng)用,,必須先import web 模塊,。 第3行:把URL結(jié)構(gòu)告訴web.py。 第一部分是匹配URL的正則表達(dá)式,,比如例子中的’/hello’,,對(duì)應(yīng)你在瀏覽器中輸入的URL是localhost:8080/hello,如果你把改成hello2,,你再輸入原來(lái)URL就無(wú)法訪問(wèn),。 網(wǎng)址得對(duì)應(yīng)修改才能正常訪問(wèn), 如果你改成 urls = ('/', 'hello', ) 直接這么輸入就行了 第二部分是接受請(qǐng)求的類(lèi)名稱(chēng),。 第6-8行: 對(duì)應(yīng)上面的hello,,是一個(gè)類(lèi), GET用于請(qǐng)求網(wǎng)頁(yè)文本,。 下面是返回的東西,,也就是我們網(wǎng)頁(yè)看到的東西。 當(dāng)有人用GET請(qǐng)求/時(shí),,這個(gè)GET函數(shù)隨時(shí)會(huì)被web.py調(diào)用,。 第10行: 一個(gè)python文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,,第二是 import 到其他的 python 腳本中被調(diào)用(模塊重用)執(zhí)行,。因此 if __name__ == 'main': 的作用就是控制這兩種情況執(zhí)行代碼的過(guò)程,在 if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執(zhí)行)才會(huì)被執(zhí)行,,而 import 到其他腳本中是不會(huì)被執(zhí)行的。 第11行: 這會(huì)告訴web.py去創(chuàng)建一個(gè)基于我們剛提交的URL列表的application,。這個(gè)application會(huì)在這個(gè)文件的全局命名空間中查找對(duì)應(yīng)類(lèi),。 第12行: 這會(huì)告訴web.py為我們啟動(dòng)上面我們寫(xiě)的應(yīng)用。 參考資料: https://www.oschina.net/question/5189_4306 覺(jué)得有用,,幫忙點(diǎn)個(gè)贊或在看吧,。 |
|
來(lái)自: TopSemic嵌入式 > 《待分類(lèi)》