一、安裝WebPy 從 http:/// 獲取WebPy-0.34包,,解壓后進(jìn)入包目錄執(zhí)行 python setup.py install,。 執(zhí)行完畢后會在Python安裝目錄的 X:\Python26\Lib\site-packages\web 下,。 二、簡單Demo實現(xiàn),,開開眼界,。 基本思路就是 模板文件+Python代碼實現(xiàn)Web程序。 新建文件夾命名為Test,在內(nèi)部建立一個目錄名為templates用來存放模板文件,,接著新增一個main.py文件,。 代碼
import web
urls = ( '/(.*)','Control' ) class Control: def GET(self): return '''<html> <head> <title>WebPy Demo</title> </head> <body> Hello World </body> </html>''' if __name__ == '__main__': app = web.application(urls,globals()) app.run() 執(zhí)行 python main.py 后可以看到命令行如下: C:\WINDOWS\system32\cmd.exe /c python.exe main.py http://0.0.0.0:8080/
在瀏覽器中訪問 http://127.0.0.1:8080/ 即可看到Hello World
三、再進(jìn)一步,,使用模板文件 在templates目錄下新建index.html,把上面代碼中的html代碼,,寫入其中。 修改 GET代碼如下 def GET(self):
render = web.template.render('templates/') return render.index() 重新執(zhí)行main.py,訪問http://127.0.0.1:8080/ 仍舊可以看到Hello World,。 注意 render.index 使用的是html文件名,。 具體原理稍后研究。 筆記一中實現(xiàn)了簡單的示例,,其中具體的代碼功能還不清楚,。 一、Python代碼如何響應(yīng)URL請求,? 示例代碼中有一個urls結(jié)構(gòu)
urls = (
'/(.*)', 'Control' ) 第一部分是正則表達(dá)式,,應(yīng)該和django處理模式一致。 第二部分是處理請求的類名稱,,必須是類來處理嗎,? GET請求處理 處理類中通過 GET方法來處理GET 請求, /之后的內(nèi)容將作為參數(shù)傳給GET方法處理。 用代碼驗證下
def GET(self,name):
print(name) render = web.template.render('templates/') return render.index(name) 訪問 http://127.0.0.1:8080/hello 時,后臺會輸出 ‘hello'說明 '/'后的內(nèi)容傳入GET方法中,。
處理類中是否也有POST方法來處理POST請求,? 嘗試一個表單提交,,看看如何處理。這里又會涉及到表單數(shù)據(jù)如何提交給POST方法呢,。 web.auto_application() 類似于 web.application() ,,但自動根據(jù)元類來構(gòu)造 urls
下面的Demo中URL自動映射不知為何沒有效果。 后來發(fā)現(xiàn)元類名小寫才可以正常,,不知自動構(gòu)造URL是否對元類名書寫有規(guī)范,。 class hello(app.page):
# -*- coding:utf-8 -*-
import web app = web.auto_application() class Hello(app.page): def GET(self): return '''<html> <head> <title>WebPy Demo</title> </head> <body> Hello World </body> </html>''' if __name__=="__main__": app.run() |
|