GAE

August 27, 2009

Google App EngineでEnvironment variable DJANGO_SETTINGS_MODULE is undefined.

google app engineで以下のようなエラーが出た。
Environment variable DJANGO_SETTINGS_MODULE is undefined.

google.appengine.ext.db.djangoformsモジュールをimportする前には、google.appengine.ext.webapp.templateをimportしなきゃならないんだとか。

参考:http://code.google.com/intl/ja/appengine/articles/djangoforms.html

何かショボいな…。

matssaku at 17:51|PermalinkComments(0)TrackBack(0)clip!

August 19, 2009

webappでURLのパス要素をパラメータとして取得する

Google AppEngineのwebappでURLのパス要素をパラメータとして取得するには、webapp.WSGIApplicationのURLマッピングに、以下のように、正規表現グループを指定すると良い。
class MainPage(webapp.RequestHandler):
    def get(self, *args):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Parameter='+str(args))

application = webapp.WSGIApplication(
    [
        ('/(.*?)/(.*)', MainPage),
        ('/.*', MainPage),
        ],
    debug=True)

def main():
    run_wsgi_app(application)


matssaku at 00:21|PermalinkComments(0)TrackBack(0)clip!

August 14, 2009

Google App Engineでsetdefaultencoding

Google App Engine上のPythonアプリケーションで日本語を扱うと、以下のエラーが出る場合がある。
UnicodeEncodeError: 'ascii' codec can't encode character ...
UnicodeDecodeError: 'ascii' codec can't decode byte ...
これは、デフォルトのエンコーディングがasciiになっているため。以下のコードでutf-8に変更できる・・・っぽい。
import sys
stdin = sys.stdin
stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdin = stdin
sys.stdout = stdout
参考:http://osdir.com/ml/GoogleAppEngine/2009-06/msg00086.html

matssaku at 07:21|PermalinkComments(1)TrackBack(0)clip!