2009/04/21
Google App Engine 支援 Java 了 !
這是有點後知後覺及馬後炮 ! 主要是因為最近很機車的案子沉寂幾週後又開始狠機車起來了! 幾乎把 Google App Engine 的學習忘了. 剛才為了查 Django 才發現 4/7 Google App Engine for java 己推出. 但還是一樣要 sign up , 等候 email 通知啟用中 ........ 只好等囉 ! 沒辦法最近工作上一直在使用 Java 開發 web app ,實在拿不出時間深入了解 Python.
2009/03/27
Google App Engine 程式中文問題
架好開發環境,也寫好最簡單的第一支 helloworld.py 之後,很容易地就上傳到 Google App Engine 正確執行.但是,問題來了,那支程式太簡單了,而且是英文.一來加入就正確的寫法,二來測試中文是否正確顯示,果然問題出現了! 執行畫面如上圖:
以下是程式碼:
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World! 中文')
self.response.out.write("我是中文")
application = webapp.WSGIApplication([('/', MainPage)],debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
想了一下開發語言 Python 針對中文需要注意的地方,才發現在最前面加入一行 encoding
# -*- coding: utf-8 -*-
結果還是不行,接下來就想到
Content-Encoding 上面了
,可惜 Google App Engine (GAE) 文件上有說明,基於安全考量,設定 Content-Encoding 是無效的.最後,把Content-Type 由 text/plain 改成 text/html 後中文亂碼問題就解決了 !以下是完整程式碼:
# -*- coding: utf-8 -*-
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/html'
self.response.out.write('Hello, webapp World! 中文')
self.response.out.write("我是中文"
self.response.out.write("單引號或雙引號括起來都可以 !")
self.response.out.write("記得第一行加入 # -*- coding: utf-8 -*-")
self.response.out.write("記得Content-Type 設為 text/html")
application = webapp.WSGIApplication([('/', MainPage)],debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
2009/03/26
申請 Google App Engine及第一支 Web 程式
Google Apps 真的不好用,也無法做太多客製化,自己租個網頁空間又花錢.現在 Google App Engine 來了,可以自己開發,它提供平台.可惜的是只能用 Python ,如果能有 Java 多好,但免費的我就不要再挑了,反正程式語言學過那麼多種,沒差一個 Python.
但申請過程好笑的事發生了,Google Account 我有,但接下來要求你輸入手機號碼,因為要發一封簡訊給你.裡面有一個 Account Code.但格式實在說明不清,最後才發現台灣門號要用以下格式:
但申請過程好笑的事發生了,Google Account 我有,但接下來要求你輸入手機號碼,因為要發一封簡訊給你.裡面有一個 Account Code.但格式實在說明不清,最後才發現台灣門號要用以下格式:
+886 955 123 456
簡單的說就是加號再加國碼為第一段,門號去零後拆三段輸入.但事情真的沒有這麼簡單,因為網頁中只認中華 台哥大 及威寶 三家門號.連我原遠傳門號攜碼到台哥大也不行.實在有夠xxx . 最後只好自公司美麗的同事借一下中華門號輸入.果然三分鐘內就有回應.那是一組數字,輸入完就會要求輸入你想要建立的 Application 名稱 : xxxx.appspot.com,只有 xxxx部份是可自訂, 後面的 appspot.com 是沒得選.
進入開發前要下載三項檔案:
- Python (2.5) : 可惜已經裝好的3.0.1 要移除了.只好到 www.python.org 下載 2.5.4 版來安裝
- Google App Engine SDK : 安裝 Python 後就將此 .msi 檔安裝起來
- 開發文件 google-appengine-docs-20090115.zip : 不下載安裝也行,在網路上看即可
第一支 helloword 程式:helloworld.py
請先在 Google App Engine SDK 安裝目錄下建立一層子目錄叫 helloworld,將 helloworld.py及接下來的組態檔存放在該目錄
print 'Content-Type: text/plain'
print ''
print 'Hello, world! 大家好'
組態檔:app.yaml
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: /.* script: helloworld.py
啟用 Web Server :
在App Engine 安裝目錄下執行 dev_appserver.py helloworld/
http://127.0.0.1:8080/
簡單的執行結果:
先將 app.yaml 中 Application : helloworld 改成 申請到的 Application id .如果沒改會出現下方畫面中的一堆錯誤訊息.
上傳程式 :
執行 appcfg.py update helloworld/
確認結果: 連上自己的網址 http://giliyou.appspot.com
網站流量統計分析:最後可以在自己的 App Engine Dashboard 看一下執行數據
接下來,開始K 文件,一步一步進入 Google App 的 Framework 中 !
訂閱:
文章 (Atom)