Google AppEngine 3アプ目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/02/25(木) 09:32:03ID:5mUqVSikhttp://code.google.com/appengine/
■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/
■リンク集
はてなブックマーク
http://b.hatena.ne.jp/t/gae
http://b.hatena.ne.jp/t/Google%20App%20Engine
Delicious
http://delicious.com/popular/gae
http://delicious.com/popular/googleappengine
■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0607nobodyさん
2010/09/15(水) 08:23:24ID:???0609nobodyさん
2010/09/15(水) 10:25:39ID:???俺がpythonくだスレでした質問もコピーにされたし
0610nobodyさん
2010/09/15(水) 11:16:51ID:???他の人が書いた質問をコピヘしまくる基地外が
0611nobodyさん
2010/09/15(水) 12:54:02ID:???3行でどなたか説明してください
0613nobodyさん
2010/09/15(水) 14:39:53ID:???0614nobodyさん
2010/09/15(水) 15:36:34ID:???0615nobodyさん
2010/09/15(水) 16:40:24ID:???作る側としてはだいぶ違う
0616nobodyさん
2010/09/15(水) 18:06:48ID:???0617nobodyさん
2010/09/15(水) 23:44:17ID:???むしろ制約が多くてコーディング自体は面倒くさい
0618nobodyさん
2010/09/16(木) 00:34:31ID:???GAEの問題だろ
0619nobodyさん
2010/09/16(木) 01:09:34ID:???0620nobodyさん
2010/09/16(木) 08:22:43ID:???0621nobodyさん
2010/09/16(木) 14:59:48ID:???ただここってGAE/Jのスレじゃなかったっけ
0622nobodyさん
2010/09/16(木) 21:24:45ID:???誰に何を言おうとしているのか?
http://www.youtube.com/watch?v=P5sWncFiYnA
0623nobodyさん
2010/09/17(金) 00:10:46ID:???ガエジェイは向こうじゃん
0624nobodyさん
2010/09/17(金) 01:39:04ID:???0625nobodyさん
2010/09/19(日) 23:32:02ID:ESNx8K3eCentOS上でGAEのテストサーバ動かしてWinpdbでアタッチしてみてるんだけど
pickle.pyのdumps関数内の
Pickler(file, protocol).dump(obj)
でブロックされたままになる。
でもHTTPのリクエストは受け付けていて
ふつーにレスポンスは返す状態。
一体どうなってるのか理解できてない。
どなたかデバッガ使ってる人いますか?
0626625
2010/09/19(日) 23:58:31ID:???0627625
2010/09/20(月) 00:25:02ID:???結局
http://kay-docs-jp.shehas.net/debugging.html
ここにあった方法
kay.utils.set_trace()
を使うことにしました。
0628nobodyさん
2010/09/20(月) 00:53:06ID:???0629nobodyさん
2010/09/20(月) 11:32:58ID:???0631nobodyさん
2010/09/26(日) 12:24:01ID:???糖質制限食のスレは巡回してる
0632nobodyさん
2010/09/27(月) 20:14:11ID:???0633nobodyさん
2010/09/27(月) 20:58:40ID:???0634nobodyさん
2010/09/27(月) 21:52:26ID:???0637nobodyさん
2010/09/27(月) 23:57:55ID:???3つもうちあわせ入れられた。行けないかな。
0639nobodyさん
2010/09/30(木) 00:07:43ID:???>>638
決裁権者なので、そうもいかなかったのだ。
0641nobodyさん
2010/10/03(日) 10:45:20ID:???http://code.google.com/intl/ja/appengine/docs/python/datastore/keysandentitygroups.html
これどのくらいのサイズってこと?
0642nobodyさん
2010/10/05(火) 14:50:00ID:???利用者の数に応じて帯域を確保できるなら採算とれなくもなさそうな。
0643nobodyさん
2010/10/05(火) 15:49:05ID:???0644nobodyさん
2010/10/05(火) 15:55:47ID:???理解してるのならこれを使おうとは思わないだろうし
無理やり実装しても請求される額考えたら採算合うとは思えないけどな
0645nobodyさん
2010/10/05(火) 22:51:33ID:???他の操作してる時に消えてるかもしれないmemchachedのデータでインクリメントしても・・・
って気がするんだけど。
0646nobodyさん
2010/10/09(土) 02:24:32ID:???ttp://code.google.com/intl/ja/appengine/articles/sharding_counters.html
上の記事読むと分かると思うけど、memcacheの値とエンティティの値を
同時に更新することで、カウンタの値の読み込みを高速化することができる。
memcacheの値が消えてたら、エンティティの値を読み込むという
getメソッドを用意するのが味噌。
0647nobodyさん
2010/10/10(日) 21:09:50ID:???getからトランザクション内でやんなきゃだめじゃね?
0649nobodyさん
2010/10/11(月) 12:14:31ID:???言い方が悪かったかも
たしかにgetもトランザクションでやってるけど
getとputが別のトランザクションじゃんこれ?
config = GeneralCounterShardConfig.get_or_insert(name, name=name)
def txn():
if config.num_shards < num:
config.num_shards = num
config.put()
db.run_in_transaction(txn)
0650nobodyさん
2010/10/11(月) 12:48:34ID:???config = GeneralCounterShardConfig.get_or_insert(name, name=name)
もトランザクション内にいれないとダメっぽいね
まあシャード数の変更でコリジョンするなんて管理者が複数いてよっぽどタイミングが悪いかぎり
起こらないだろうからほとんどの場合問題ないけど
0651nobodyさん
2010/10/12(火) 12:06:04ID:???絶対成功するん?
0652nobodyさん
2010/10/12(火) 12:16:53ID:???0653nobodyさん
2010/10/16(土) 16:19:09ID:???今日SDK1.3.8でテストしたら自動でURLエンコードしてくれてたんですが
仕様が変わったんでしょうか。
例えば
def post(self):
name = self.request.get('name')
ではなく
def post(self):
name = urllib.unquote_plus(self.request.get('name'))
としないと変数nameに生の文字列が入らなかった気するんですが。。
0654nobodyさん
2010/10/17(日) 22:09:54ID:???>POSTされたデータのURLエンコード処理って今までは自分で行う必要があった気がするんですが
えーそんなことないと思うけど。
いくらなんでもそんなださい仕様だったら、だれもGAE使ってないと思う。
もし気になるなら古いSDKダウンロードして試してみたらどうでしょう。
0655nobodyさん
2010/10/17(日) 23:07:18ID:???0656nobodyさん
2010/10/18(月) 00:10:55ID:???0657653
2010/10/19(火) 06:07:41ID:???0658nobodyさん
2010/10/19(火) 20:07:38ID:???画像はさすがにここには置けないよね
0661nobodyさん
2010/10/20(水) 14:06:17ID:???転送量で金がかかるから
画像系のブログやってるけど、アクセス4000ぐらいでも
転送量が1日10G超えたこともある
0663nobodyさん
2010/10/23(土) 00:07:16ID:???たまによく極稀に2chに張られるのを見かける
あれ、転送量大丈夫なのかな
>>661
ついでにPicasaも
0664nobodyさん
2010/10/23(土) 15:09:24ID:???アクセス増えると中身をチェックされて、
最悪の場合、アカウントごと消される
0665nobodyさん
2010/10/26(火) 12:47:25ID:???それ組み込みのうpろだでiPhone板ではデフォ
たまーに503になるけど、流れるのも早いしほとんどスクリーンキャプチャだから
意外とバランス取れてるのかもしれない
0666nobodyさん
2010/10/30(土) 10:35:47ID:???アレも結構、Loactionで飛ばしてて流浪の民っぽいのだが
0667nobodyさん
2010/11/01(月) 06:38:30ID:eyzOe3gX│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0668nobodyさん
2010/11/18(木) 20:53:41ID:???ユニークの項目で見て、違いがあれば更新し、なければ追加するという処理なのですが、毎回SELECTして判定しないといけませんか?
0669nobodyさん
2010/11/19(金) 20:13:56ID:???>毎回SELECTして判定しないといけませんか?
うん。
普通だったらそういうユニークなキーは
StringPropertyではなくkey_nameに指定すると思う。
それだったら、エンティティの存在チェックは、
get_by_key_nameするだけだから早いよ。
0671nobodyさん
2010/11/23(火) 11:05:09ID:???1ページに200要素あってそれが8ページあり、それぞれ毎日更新されています。
ただし、8ページの要素名(フィールド)は互いにかなり重複しています。
このような場合は基底クラスを宣言してその派生クラスをdbクラスの多重継承とすべきでしょうか?
一気に全ページ対応の巨大なクラスを宣言すべきでしょうか?
検索クエリは全ページの横断クエリもありえるので細かく分ける必要はない気がします・・・・
開発経験が少ないので勘どころがわかりません
よろしかったらアドバイスお願いします
0672nobodyさん
2010/11/23(火) 12:33:20ID:???0673nobodyさん
2010/11/23(火) 12:57:30ID:???0674nobodyさん
2010/11/24(水) 23:10:32ID:???0675nobodyさん
2010/11/25(木) 22:22:29ID:???本当だ。外部のサーバーに飛ばしてるんだな。
Janeで見たらリダイレクトされていてもそのまま見られるから全然気付かなかったわ。
0676nobodyさん
2010/12/06(月) 00:19:46ID:???ブラウザでRSSを開くと前と更新されているのに
GAEのlogでは過去の内容のままで記録されています。
一応UserAgentやリファラーをつけて見ましたが変わりませんでした。
原因としてどの様なことが考えられますか?
0678nobodyさん
2010/12/06(月) 01:13:18ID:???0679nobodyさん
2010/12/06(月) 05:54:56ID:???0680質問
2010/12/12(日) 17:47:20ID:89yAKgNbもし可能なら日本語を入れるにはどうすればいいですか?
Google App Engine Lancherでgaewiki(http://code.google.com/p/gaewiki/)のサーバー起動して、
http://localhost:8088/日本語
としてFirefoxでアクセスすると↓のエラーメッセージが出ます
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3186, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 531, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2410, in Dispatch
self._module_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2299, in ExecuteCGI
os.environ.update(env)
File "D:\app\dev\Python25\lib\os.py", line 462, in update
self[k] = dict[k]
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
OSError: [Errno 0] Error
0681nobodyさん
2010/12/13(月) 00:20:46ID:???gaewikiを動かして日本語utf8なパスを試したところ、linux+python2.5の環境では問題なかったです。
日本語URLはbase64でエンコードされているので特に問題ないとは思うけど、
Windows+python or GAEの問題なのかなぁ。。
0682680
2010/12/13(月) 00:31:25ID:2tCEPe3y試していただいてありがとうございます。
質問した後に試してみたことがあります。
以下のようにアクセスするとログはこのように表示されます。
http://localhost:8088/日本語
ERROR 2010-12-12 15:25:01,736 dev_appserver.py:3285] Exception encountered handling request
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3186, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 531, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2410, in Dispatch
self._module_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2299, in ExecuteCGI
os.environ.update(env)
File "D:\app\dev\Python25\lib\os.py", line 462, in update
self[k] = dict[k]
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
OSError: [Errno 0] Error
INFO 2010-12-12 15:25:01,762 dev_appserver.py:3317] "GET /%E6%97%A5%E6%9C%AC%E8%AA%9E HTTP/1.1" 500 -
一方で以下のようにアクセスすると200を返して正常に処理されます。
http://localhost:8088/日本
INFO 2010-12-12 15:25:08,234 dev_appserver.py:3317] "GET /%E6%97%A5%E6%9C%AC HTTP/1.1" 200 -
この違いは何なのでしょうか・・・
0683680
2010/12/13(月) 01:49:58ID:2tCEPe3yとりあえずUbuntu Linuxをインストールして試してみたら上記の問題は発生しませんでした。
GAE上にアップロードして実行しても問題は発生しませんでした。
理由は分かりませんがWindows環境では問題が出るようですね・・・
0684nobodyさん
2010/12/13(月) 15:48:30ID:???転送や保存に金がかかるという理由以外にも、アップロードとかのしやすさを考えるとね
0685nobodyさん
2010/12/13(月) 16:06:39ID:???WindowsだとPython2.5.5以外では問題が多発したような。
もし2.6や2.7を使ってたら、2.5をインストールしなおしたほうがいい。
ちがってたらごめんね。
0686nobodyさん
2010/12/15(水) 16:21:04ID:???0687680
2010/12/15(水) 16:27:50ID:cZWB6GF9公式サイトでは2.5.5のwindows用バイナリは配布していないのですね。
ActivePython-2.5.5.7-win32-x86.msiをインストールして使ってみましたが、
やはり日本語URLの問題は発生します。
0688nobodyさん
2010/12/15(水) 16:55:54ID:???Pythonの問題じゃなくてWindows(mbcsがSJIS)の問題だと思わない?
0689nobodyさん
2010/12/16(木) 16:48:20ID:???0690nobodyさん
2010/12/17(金) 01:44:05ID:???0691nobodyさん
2010/12/17(金) 02:27:20ID:???GAE関係なしにPython2.5(Windows)の環境でutf-8で
dictのkeyに'日本語'と'日本'で問題ないか試してみた?
0692nobodyさん
2010/12/17(金) 12:44:53ID:???その問題、自分が開発してるときにもあったけど、
本サーバにデプロイしたら、問題なく動いたので
気にしないでやってた。
>>691のやつ試したら、
>>> os.putenv("hoge", u"日本".encode("utf-8"))
>>> os.putenv("hoge", u"日本語".encode("utf-8"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 42] Illegal byte sequence
となるので、utf-8でエンコードしたときの末尾がよろしくない文字列を
putenvしようとするとエラーが出るのかな。
0693nobodyさん
2010/12/17(金) 13:04:44ID:???>>> os.putenv('hoge', u'日本語'.encode('utf-8'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory
>>> os.putenv('hoge', u'日本'.encode('utf-8'))
>>> os.putenv('hoge', u'日本語'.encode('utf-8'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 0] Error
>>> os.putenv('hoge', u'日本'.encode('utf-8'))
>>> os.putenv('hoge', u'日本語'.encode('utf-8'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 0] Error
なんだこりゃ
0694nobodyさん
2010/12/17(金) 18:48:28ID:???0695nobodyさん
2010/12/17(金) 21:40:26ID:???悪いのはpyじゃなくてWinだし
0696nobodyさん
2010/12/17(金) 23:08:16ID:???in posixmodule (also under NT).
0697nobodyさん
2010/12/17(金) 23:08:51ID:???WとAの2つのAPIがあって、Aでは未だにCP932が現役でCP65001が使えないんだから
0698nobodyさん
2010/12/17(金) 23:44:59ID:???やりたいことは、datastorのプロパティとDjangoを介したform要素を1対1で対応させて、挿入、編集処理を行いたいのです。
プロパティの数もかなり多いので、ループを多用した処理でコードを短くしたい。
<select>タグで選択させるエンティティもクラス定義の中にうまく取り込み定義したい。
いっそ、エンティティごとに表示させるformのタイプやバリデーションも定義したい。
こんなふうに考えてます。
なにか参考になるキーワードやサンプルページなどありましたら、教えてください。
具体的にコードを教えていただけるとさらにありがたいと思います。
GAEpythonアプリは簡単なものしか経験はありません。何卒よろしくお願いします。
0699nobodyさん
2010/12/18(土) 00:33:28ID:???Pythonのお勉強 Part40
http://hibari.2ch.net/test/read.cgi/tech/1289105386/
くだすれPython(超初心者用) その9
http://hibari.2ch.net/test/read.cgi/tech/1258320456/
Python の宿題ここで答えます Part 2
http://hibari.2ch.net/test/read.cgi/tech/1235050215/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://hibari.2ch.net/test/read.cgi/tech/1157686822/
Microsoft IronPython 1.0
http://hibari.2ch.net/test/read.cgi/tech/1220604777/
俺のPython勉強日記
http://hibari.2ch.net/test/read.cgi/tech/1219618707/
【シンプル】Pythonっておもしろい【パワフル】
http://hibari.2ch.net/test/read.cgi/tech/1169473442/
Pythonに見られるインデントによる制御構造の是非
http://hibari.2ch.net/test/read.cgi/tech/1175919288/
Python Challengeをやろう!
0700nobodyさん
2010/12/18(土) 01:14:36ID:???0701nobodyさん
2010/12/18(土) 01:38:15ID:???http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/
0703nobodyさん
2010/12/19(日) 09:20:10ID:???ありがとうございます。
http://code.google.com/intl/ja/appengine/articles/djangoforms.html
このあたりから調べてみます。助かりました。
0704nobodyさん
2010/12/23(木) 15:01:55ID:upuRkgtvapp.yaml
の書き方についてご教示ください。
- url: /
static_dir: static_dir/
- url: /article
script: article.py
このような設定をした場合で物理アドレスがstatic_dir/artcle/imgの中にあるイメージファイルは
article.html(article.pyが生成)の中でimg/と記述されているイメージタグからアクセスできるでしょうか?
テンプレートの中にあるarticle.htmlのイメージタグのsrcアドレスを単純な相対パスにしておきたいのですが。
この方法がダメなら書き直すしかないですね。
大量のhtmlを受け取って、そのうちの一部だけを動的に書き換えて欲しいという要求なので、なるべく元の
html内のimgタグなどはそのままにしておきたいのです。
よろしくお願いします。
0705nobodyさん
2010/12/23(木) 16:01:08ID:???- url: /img
static_dir: static_dir/article/img
- url: /article
script: article.py
- url: /
static_dir: static_dir/
0706nobodyさん
2010/12/23(木) 18:38:00ID:upuRkgtv■ このスレッドは過去ログ倉庫に格納されています