2015年4月18日

GAE SDK for Python 教學 (2) - Hello, World! ( Create a simple Python project using GAE SDK tutorial )

本系列文章將會是 Webapp2 教學的基礎,上一篇介紹過如何安裝 GAE SDK for Python 於 Arch Linux 機器上,開發環境都設定好後來了解如何使用 SDK 來開發 Python專案,本篇將使用經典的 Hello World 來當作範例。( 其他 Webapp2 相關教學可以參考本篇整理 )



前置作業:
首先我們需要建立一個專案資料夾名為 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


熱門文章