edo1z blog

プログラミングなどに関するブログです

GAE

GAE (Google App Engine) でcsvを一括アップロードする (python)

昔駅データのcsvファイルをGAEで一括アップロードしたことがありましたが、改めて本日csvファイルのアップロードが必要になりましたので、調べながらまたやってみたいと思います。 このデータのアップロードとダウンロードというページに従ってやればいいよ…

せどり向けプレミア本・DVDの検索システムをつくってみた

せどりというのはご存知でしょうか?ブックオフで100円で買った古本は、アマゾンだと意外と高値で売れたりするというやつです。裁定取引ということでいいんでしょうかね。最近ですと電脳せどりといいまして、わざわざリアル店舗のブックオフに足を運ばずにイ…

GAE jinja2 をちょっと効率的にする(くだらないこと)

GAE

GAEのjinja2というテンプレートエンジン?を使ってますが、一々出力するときの3行くらい書くのめんどくさいから、こうやって効率的にしたというくだらないことだけど。 def write(self,param,html): template = jinja_environment.get_template(html) self.r…

google app engine - datastoreのけんきゅう

簡単なけんきゅうです。 class Price(db.Model): price = db.IntegerProperty() このクラスを使います。 now = Price.all() とやると、 <google.appengine.ext.db.Query object at 0x106845fd0>が返ってきます。これはデータが入っていようが、空だろうがこのような結果が返ってきます。 now = Price.all() now = n</google.appengine.ext.db.query>…

Product Advertising APIで効率よくItemSearchする(GAE×Python2.7)

こんばんは。タイトルのとおり効率よくItemSearchしたいと思ってます。 効率よくも何もないとお思いになられるかもしれませんが、本、DVD、おもちゃ、ホビー、TVゲームが全て検索できるItemSearch関数を作ろうということです。 私は本しかやったことなかった…

GAEでメールを送信する (Python)

GAEでメール送信するのは強烈に簡単です。 久しぶりで忘れてたのでメモっておきます。メモる必要すらないくらい簡単です。 ここを見ればすぐ分かります。 使い方イメージはこんな感じです。 from google.appengine.api import mail class Mail(webapp2.Reque…

GAE×Python - Task Queueの研究

GAE

Task Queueを研究いたします。 GAEにはcronというものがあります。これは、cron.yamlにタスクと実行頻度を登録しておくことで、バックグラウンドで自動的に登録されたタスクを登録された頻度で実行するものです。 しかしcronでは不十分な状況が想定されます…

twitterの自動フォロワー管理ツールをつくってみた

GAE × Python2.7 × Twitter Api1.1でtwitterの自動フォロワー管理ツールをつくりました。 最初フォロー・フォロー削除共に1日480件という設定にしていたら、アップして数時間で速やかにtwitterからアカウント凍結されました。。まあさすがに1日48件なら大丈…

GAEで純粋Django1.4を使う

環境はMacです。Eclipse×GAE×Python2.7を使ってます。純粋Djangoを使えるようになっていることを知ったので使ってみたいと思います。 参考にしたサイトは、下記2点です。 Windows7 x64 で、GAE/P(1.7.0) + Django 1.3 の環境を構築する GAE 1.6+Django 1.2 …

Google chart apiのURLを作るJavaScript

Google chart apiのURLを作るpythonスクリプトを今日中につくるぞ。やりたいのは、超低レベルなんだけど、本当に2次関数というのは放物線を描くのかを自分でデータをつくってグラフ化して試したいのだ。一次関数が一直線なのは当たり前に分かるからな。 Goo…

GAE 多対多モデルのデータ削除について

Google app engin の datastoreで多対多を下記ページなどを参考につくりました。 http://code.google.com/intl/ja/appengine/articles/modeling.html グループとユーザの関係を多対多で構築しています。models.pyの内容は下記になります。 ※私は、GAEをPytho…

GAE Keyを文字列で取得した場合にオブジェクトを取り出す方法

将来の俺ならこのタイトルでわかるだろう。 GAEのmodelにはkeyがあります。これは各エンティティに固有のキーです。これはKeyオブジェクトのインスタンスですが、文字列に変更できます。よって、サイト上でこの文字列をやり取りし、後程このkey文字列をもと…

GAEのDatastoreのkey_nameで引っぱってきて上書きするとき

最悪なタイトルだが、きっとこれで将来の俺なら分かるだろう。 Horie(key_name='hf1') これは、key_nameがhf1である新しいHorieを作っているのであり、これをputすると、もし既にkey_nameがhf1であるデータが保存されている場合は、上書きされる。新しいデー…

GAEのcron

http://code.google.com/intl/ja/appengine/docs/python/config/cron.html cron.yamlに下記のように記載する。 cron: - description: daily summary job url: /tasks/summary schedule: every 24 hours - description: monday morning mailout url: /mail/we…

Python 文字列の最後の空白文字(改行文字)を削除する

http://memo.jj-net.jp/182 rstrip()は行末の空白文字を取除く.空白文字とはstring.whitespaceで定義されているように 't', 'n', 'r', 'v', 'f' である.本当に改行コードだけを削除する場合は,rstrip()に削除する文字を引数として渡せばよい. Horie(key_…

Mac eclipseでGAE開発する為のPydev(Python2.5)の設定

eclipseをインストールして、Pydevプラグインをインストールすれば、eclipse上でpython開発ができますね。最近のPydevはGAEプロジェクトもついているのでGAEの開発をeclipse上でPythonでできますね。 GAEはPython2.5しかサポートしてませんが、Mac OS X 10.6…

GAEのDatastoreのkey_name

すべてのエンティティは識別子を持っています。アプリケーションは、インスタンス コンストラクタに key_name 引数(str 値)を指定して、キーに使用するためにアプリケーション自身の識別子を割り当てることができます。 s = Story(key_name="xzy123") key_…

GAEの全文検索

http://www.ianlewis.org/jp/gae-hackathon-disc-3-jp このページにGAEで全文検索する為のコードが紹介されている。全文検索は今僕は不要だが、とりあえずメモっておこう。すごく詳しそうな人のページだ。

DatastoreのTips

http://d.hatena.ne.jp/kazunori_279/20090617/1245212016 このページにDatastoreのTipsが色々書いてある。読んで覚えよう。 ところで、DataStoreで部分一致検索をしたいんだけど、どうすればいいんだろう?今情報探し中。

GAEの検索パターン

http://d.hatena.ne.jp/knj77/20100313/1268447499 このサイトに、GAEの検索方法について、書いてあったのでメモ。GAEは複雑な検索をするにはインデックスを作らないといけないけど、場合によっては全てをインデックス作成するのは非現実なことがあります。…

GAEの開発サーバのデータを消去する

dev_appserver.py --clear_datastore {{app名}} でいいらしい。

GAEの開発サーバのDashboardをみる

GAE

今まで知らなかった。超便利だ。 http://localhost:8000/_ah/admin/datastore

GAEのbulk loaderツールを使って駅データのCSVをデータストアにアップロードする

駅データのcsvファイルをGAEのデータストアにアップロードしたい。 csv等をデータストアに一括アップロードする場合、bulk loaderツールを使う。bulk loaderはappcfg.pyコマンドから使用できる。bulk loaderツールは、remote_apiを使用してGAEアプリのデータ…

Gaeデータストア エンティティの削除

GAE

データ削除の方法は下記の2通り。 q = db.GqlQuery("SELECT * FROM Message WHERE create_date < :1", earliest_date) results = q.fetch(10) for result in results: result.delete() # or... q = db.GqlQuery("SELECT * FROM Message WHERE create_date < …

GAE データストアのStringPropertyとTextProperty

GAE

久しぶりだったので勘違いしてた。 class StringProperty(verbose_name=None, multiline=False, ...) StringPropertyは、短い文字列。500 バイト以下の Python str または unicode(basestring)値を使用します。StringProperty プロパティ値はインデックス…

BeautifulSoupの挙動が謎(GAE上でPythonでAmazonAPIを使う)

GAEでPythonとDjangoでAmazonAPI使ったWEBアプリを作成中。 AmazonAPIはPyzonを使っていて、返ってきたxmlはBeautifulSoupを使って読んでいる。 が、BeautifulSoupがよく分からず、どんなコードならいいのか全然わからない。 あれはうまくいったのに、これは…