前置作業:
首先我們需要建立一個專案資料夾名為 helloworld,之後任何相關檔案都會放進這個資料夾,
mkdir helloworld
建立 Hello World 專案:
建立我們的第一個 Python 檔案名為 helloworld.py,包含 HTTP Header 並顯示 Hello World ! 訊息的檔案,也就是當有 Request 進來時則以此檔案處理、回應,內容如下:
# This is a simple request handler.
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
我們還需要建立專案設定檔 app.yaml,此檔案也是存放 helloworld 資料夾中,檔案內容如下:application: helloworld
version: 1
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /.*
script: helloworld.py
註:官方教學的 threadsafe 設定為 true,但我們使用的是 CGI 方式,故只能先設定為 false。否則啟動 Server 時會出現錯誤訊息 ( google.appengine.api.yaml_errors.EventError: threadsafe cannot be enabled with CGI handler )兩個檔案設定完後,我們的專案已經完成了。以我自己配置為例,專案結構參考如下:
── google_appengine
│ ├── api_server.py
│ ├── appcfg.py
│ ├── backends_conversion.py
│ ├── BUGS
│ ├── bulkload_client.py
│ ├── bulkloader.py
│ ├── demos
│ ├── dev_appserver.py
│ ├── ....
└── helloworld
├── app.yaml
└── helloworld.py
啟動伺服器並測試專案:
專案建立完成後來啟動 Python Development Server 測試我們的專案,以下面的指令啟動後,連線至 http://localhost:8080/ 則可以看到顯示結果。指令參考如下:
# 主要指令,根據你的路徑修改
~/[path]/google_appengine/dev_appserver.py ~/[path]/helloworld/
# 若以我的專案結構為例,指令為:
google_appengine/dev_appserver.py helloworld/
# 加上 host 參數後,可以從其他電腦連至開發伺服器
google_appengine/dev_appserver.py --host 192.168.1.1 helloworld/
若顯示錯誤訊息 NameError: name 'execfile' is not defined,則表示你執行的 Python 並不是 2.7 版本,你可以試試看以下指令:python2 google_appengine/dev_appserver.py helloworld/
開發伺服器成功啟動的訊息如下:
停止伺服器,只需要 Control-C。
Environment :
・ Arch Linux
・ Python 2.7
Reference :
・ Webapp2 official site
・ Google App Engine SDK
・ Python Dev Server information