参考: http://knightso.hateblo.jp/entry/2014/06/10/080720開発サーバ上でのtaskqueueにおいては、queue.yamlに設定したrateの設定は無視される。 たとえば5分おきに実行させたいと思って、rate: 20/h とやっても、開発サーバ上ではwaitせず連続して処理…
サードパーティ製のPythonライブラリを使おうと思った時、うまくimportできるものとそうでないものがある。importできない原因の1つに、ライブラリ自身が依存している他パッケージをimportする際に、そのパッケージにPYTHONPATHが通っていること前提になっ…
先日、こんなトラブルがあった。 bulkloaderにて、とあるデータを取り込む。 開発コンソールの Datastore Viewer で中身を確認。ちゃんと入ってる。 自分のプログラムから、そのデータをクエリで取得すると、特定のプロパティだけ、どのレコードも常に値が N…
ローカル開発サーバで開発・テスト中に、あるカインドの全エンティティを削除したい場合、ローカル開発サーバの管理コンソールの Interactive Console を使うと良い。(http://localhost:ポート番号/console) from google.appengine.ext import ndb from 場…
いつも忘れるので備忘。 数値のゼロ埋め方法。 val = 123 #推奨 "{0:0>5}".format(val) #古い方法 "%05d" % val #いったん文字列にする str(val).zfill(5) #いったん文字列にする。埋め草を指定できる str(val).rjust(5, "0")
たとえば、検索条件に従って検索を行うhogeというページがあったとすると、検索条件をサーバ側に送信する方法には次のようなものがあるだろう。 方法1 GETメソッドで、URLにパラメータを付与する。 http://サーバアドレス/hoge?param1=xxxx¶m2=yyyy&par…
自分用に抜粋。 ファイル名は、小文字+アンスコ形式。 クラス名はPascal形式(単語の先頭を大文字、アンスコ使わない)。 グローバル変数は、小文字+アンスコ形式。 定数は、大文字+アンスコ形式。 メソッド・関数は、小文字+アンスコ形式。 ローカル変…
インデックスの削除のやり方をググると、 appcfg.py vacuum_indexes をやれ、という情報に行き当たるのであるが、渡しているパラメータについて説明がないことが多くて混乱するのでメモっておく。基本形はこうだ。 appcfg.py vacuum_indexes フォルダ名 -A …
datastoreでfilterを行うとき、次のように、"="の前にスペースを空ける必要があるのだが、その操作によってインデックスが設定される。 datas = カインド名.all().filter("カラム名 =", "hoge")index.yaml - kind: カインド名 properties: - name: カラム名…
お題:A.html、B.html の2つで、hoge.html というテンプレートを使い回している(=includeしている)として、ページタイトルをAとBで異なる物にしたい。タイトルは固定的な文字列なので、ハンドラーから渡すんじゃなく、テンプレート内で定数のように定義…
普段、GAE Launcher つかって、開発サーバ起動するじゃないすか。 で、データストアが消えないように、自分の好きな場所にデータストアを保存するように設定しとくじゃないすか。 そしたら、今回は全部クリアしたいなーというときには、あえて、GAE Launcher…
言い古された話ではあるようですが、pythonは、基本的に、値渡しです。たとえば、3つぐらい配列があって、関数にその3つの配列のガワを渡して、関数の中でappendしてほしいよ、てな時どうするかというと、戻り値をタプルとして複数返せることを利用するの…
お題:YYYY/MM/DD形式の日付文字列を、年・月・日に分割する dateStr = '2014/07/31' yy, mm, dd = dateStr.split('/')なんと簡単なんだ...
import logging ... logging.debug("hoge")とやるわけだが、ログレベルは、開発サーバでは、dev_appengine.pyの起動パラメータに指定してやる。 --log_level=debugdebug/info/warning/critical/error のいずれか。なお、ググると、良く「以下をmain()に記述…
ローカル開発サーバにおけるDatastoreの保存先ファイルは、tempファイルであり、マシンを再起動すると消えてしまう。 これを防ぐには、AppLauncherにて Editメニュー⇒Application Settings を開き Extra Flags: の欄に、以下のように設定する --datastore_pa…
bulkloaderでUTF-8のファイルをアップロードする際は、BOMなしにすること! BOMありにすると、ファイルの先頭のデータが認識されなくなる。 この現象を発見した経緯 (1)アップロードさせたいテストデータをExcelで作成し、CSVファイルとして保存。 (2)bulklo…
わかっているようでわかってなかったので整理。 用語 kind RDBでいうところのテーブルのこと Entity RDBでいうところのレコードのこと #テーブルのことじゃなかった! Propery RDBでいうところのカラムのこと Tips 異なるバージョン間のDatastoreは別々にな…
GAEのbulkloaderがらみで疑問に思ったこと。bulkloader.yaml に、date型のプロパティに、 transform.import_date_time(%Y-%m-%dT%H:%M:%S) という初期値がセットされていた。この書式部分の仕様は、Python の strptime() に渡す書式と同一だそうで、 http://…
webapp2のサンプルでは、ほとんどのファイルがアプリケーションのルートディレクトリに置かれているので、ソースコードをサブフォルダに置きたい場合のやり方がわかりにくい。ちなみに、Python2.5 + webapp だった時代は、このようにやってた。 ディレクトリ…
OS X 10.8 + Aptana でPyDevインタープリタの登録ができない。http://stackoverflow.com/questions/5595276/pydev-eclipse-python-interpreters-error-stdlib-not-foundで、原因はこれだったhttp://stackoverflow.com/questions/11702139/pydev-debugger-una…
Google Plugin for Eclipse を使いたい。eclipse 4.3 にはすんなり入ったが、Aptana Studio 3 に入れると依存関係エラーになってインストールできない。#ちなみに、Aptana Studio 3 は、Eclipse3.7(Indigo)がベースになっている #(と、about画面を見て判断…
Mac版のSDKをダウンロードすると、その中身は、GoogleAppEngineLauncher.app というファイルが1つしかなく、開発サーバの本体である dev_appserver.py がどこに存在しているのか、ずっとわからないままだったのだが、ようやっとその場所を発見。GoogleAppEn…
データストアに日付をキーにして格納されているデータをSELECTして、それを 日付の降順に一覧表示(TABLEタグに吐き出す) 日付の昇順にチャート表示(XMLデータに吐き出す) という2つの処理を同一ページ内でやりたい。最初は、日付の降順でのSELECTと、日付…
こんな感じのHTMLがあったとしよう。 hoge.html <html> <head> ・・・ </head> <body> 選択してください。 <select id='hoge'> <option value="#" selected>全て</option> <option value="001">区分1</option> <option value="002">区分2</option> <option value="003">区分3</option> </select> <body> </html>このHTMLから、optionタグに入っているコードと名称を取ってきたい。 名称は、タグの中…
GAEのデータストアに保存したデータを取得し、FusionChart(Flashベースのグラフ出力ライブラリ)でグラフ表示するというプログラムを作っている。 FusionChartは、グラフにプロットするデータを、以下のような形式のXMLで渡してやる必要がある。 XMLの一例…
当初、自分は、新規プロジェクト作成、コーディング、テスト(実行)まですべてAptana上で行っていたのだが、GAEの本番環境へのデプロイのことを考えると、Google App Engine Launcher を使っておかないと何かと不便だということがわかってきた。 ここであら…
どうも使えないようです。 C拡張モジュールが使えないためではないかと想像しているのだけど。import matplotlib.xxxx とやると、matplotlib からnumpy を使っていて、その中で multiarray を使おうとしているところで No module named multiarray となって…
java等のloggingと同じ使い方ができます。 import logging from google.appengine.ext import webapp class MainPage(webapp.RequestHandler): def get(self): logging.debug("testtest") #ここでログを出力 application = webapp.WSGIApplication( [('/',Ma…
macで作業していたら、次のコードがエラーになった。 class MainPage(webapp.RequestHandler): def get(self): #テンプレートページ(index.html)にデータを流し込みつつ表示する page_contents = { 'dateFrom': '2009/10/29', 'dateTo': '2009/10/29' } path…
自作のjavascriptを、独立した.jsファイルにして、それを取り込む場合は、app.yamlにその事を書いておかないと、jsファイルがロードできない。app.yaml抜粋(アプリケーションルート/scripts というフォルダの下にjsファイルを置くという想定) handlers: - …