前幾年使用過 webpy做個些小東西,今天有個東西從拾webpy。但是基本上都忘記了,還是那句古話“好記性不如爛筆頭”。這里把相應的步驟梳理下。
前提: 操作系統 windows
一、webpy 方面
1、 安裝python
1)大家喜歡使用的一般是2.7版本,相對來說比較穩定的一個版本 安裝路徑:c:/python27
2)配置計算機環境變量加入c:/python27路徑
2、webpy 安裝
1)下載 地址 http://webpy.org/static/web.py-0.37.tar.gz
2)隨便解壓到一個路徑(安裝后就不需要了) 我解壓到D:/webpy
3)cmd 命令 cd D:/webpy 然后運行安裝命令
python setup.py install
4)import web 建議安裝是否成功
3、寫第一個demo
1)webpy有內置的服務,我們寫一下代碼保存成code.py文件
import web #這條語句會導入web.py模塊。 urls = ( '/', 'index' ) #這行表示我們要URL/(首頁)被一個叫index的類處理 app = web.application(urls, globals()) #會告訴web.py去創建一個基於我們剛提交的URL列表的application。這個application會在這個文件的全局命名空間中查找對應類 class index: def GET(self): return "Hello, world!" #當有人用GET請求/時,這個GET函數隨時會被web.py調用 if __name__ == "__main__": app.run() #這會告訴web.py為我們啟動上面我們寫的應用
2.保存code.py 然后cmd執行 python code.py
3、打開瀏覽器輸入 localhost:8080就可以看到上面的結果
注意默認端口為 :8080 可以通過 python code.py 12343 這種來設定啟動端口

二、Http服務器環境(nginx+(fastcgi)flup+(wsgi)webpy)
1、Spawn-fcgi 1.6.2(管理fastcig進程 指支持liunx操作系統)
spawn-fcig
spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002
啟動
spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002
關閉
#!/bin/sh kill `pgrep -f "python /path/to/www/index.py"`
2、Flup (實現python web.server)
webpy的Index 文件加入這一行
if __name__ == "__main__": web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr) app.run()
備注: fastcgi web服務跟 應用程序的標准, wsgi (PythonWebServerGatewayInterface) 為 flup 和 python直接的標准
錯誤收集:
配置 nginx + spawn + flup + web.py 1、安裝web.py 、flup都比較容易 python setup.py install 2、安裝 spawn 1.6.3 tar zxf spawn-fcgi-1.6.3.tar.gz cd spawn-fcgi-1.6.3 ./configure --prefix=/dicc/spawn make && make install spawn-fcgi命令啟動: /dicc/spawn/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u fcgi -g fcgi -f /dicc/php/bin/php-cgi -C 50 啟動運行的時候一定要 : /dicc/spawn/bin/spawn-fcgi -d /www/web/default/ -f /www/web/default/index.py -a 127.0.0.1 -p 9002 3、 啟動webpy cgi: sudo spawn-fcgi -d /opt/www/python/pylog/ -f /opt/www/python/pylog/index.py -a 127.0.0.1 -p 9002 出錯: spawn-fcgi: child exited with: 126 執行 chmod +x /opt/www/python/pylog/index.py 啟動成功: spawn-fcgi: child spawned successfully: PID: 9208 查看端口是否存在 $ netstat -ano |grep 9002 tcp 0 0 127.0.0.1:9002 0.0.0.0:* LISTEN 關閉 (0.00/0/0)