X

Google App Engine 初學(完) - 問與答

GAE 在開發時, 遇到的一些問題與解法, 在此篇做些紀錄.

問題1

回答1

安裝 PIL

  • apt-get install python-imaging # python-imaging - Python Imaging Library

測試

  • python -c 'import PIL' 沒錯誤訊息即可.

問題2

  • Python 的 urldecode(), html 轉換 有哪些 Function 可以用?
回答2

urlencode() 是用 unquote(), 如下 Function.


def urldecode(param):
    return unquote(param)

html 轉換 (同 htmlspecialchars())


import cgi
cgi.escape('<html>')

問題3

  • 於 command line 的 urldecode 轉換操作?
回答3


>>> a = u'css%E5%9C%93%E8%A7%92'
>>> print urllib.unquote(a.encode('utf-8'))
css圓角
>>> print urllib.unquote(a.decode('utf-8'))
css圓角

問題4

  • print k # [u'css%E5%9C%93%E8%A7%92']
  • k.pop().encode('utf-8') # 出現錯誤: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 3: ordinal not in range(128)
回答4

使用 sys.setdefaultencoding('utf8') 設為 utf8 即可.


import sys
sys.setdefaultencoding('utf8') # 把 str 編碼由 ascii 改為 utf8 (或 gb18030)
print urllib.unquote(k.pop().encode('utf-8')) # [u'css%E5%9C%93%E8%A7%92'] = css 圓角

嚴謹點的 UTF-8 設定方式.


code = sys.getdefaultencoding()
if code != 'utf8':
    reload(sys)
    sys.setdefaultencoding('utf8')

問題5

  • Python json encode, decode 要如何寫?
回答5

json 要可以使用 simplejson.


from django.utils import simplejson as json
# encode
json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
# decode
json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')

問題6

  • 要單獨取出 timesince (幾分鐘前) 的 Library 來使用, 要如何取用?
回答6

下述需 import template, 不然會出現 Environment variable DJANGO_SETTINGS_MODULE is undefined. 的錯誤.


from google.appengine.ext.webapp import template
from django.utils.timesince import timesince
timesince(v.created) # 秀出幾分鐘前
timesince(datetime.datetime.now()) # 秀出幾分鐘前

問題7

  • GAE 資料儲存(存入 DB), 要確保存入 UTF-8, 建議如何寫?
回答7

問題8

  • 有建議 Python IDE 使用哪套嗎?
回答8

問題9

  • GAE 的預設網域名稱?
回答9
  • *.appspot.com
Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post