トップページphp
1001コメント298KB

Google AppEngine 3アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/25(木) 09:32:03ID:5mUqVSik
Google App Engine
http://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
0739nobodyさん2011/01/01(土) 03:11:41ID:???
これでもダメなんよ

{
[
{
"title": "New",
"action":"CreateDoc"
},
{
"title": "Open",
"action": "OpenDoc"
},
{
"title": "Close",
"action": "CloseDoc"
}
]
}
0740nobodyさん2011/01/01(土) 03:33:32ID:???
一番外側の配列に対して要素名ないじゃん
0741nobodyさん2011/01/01(土) 03:35:43ID:???
{
"hoge_array": [
{
"title": "New",
"action":"CreateDoc"
},
{
"title": "Open",
"action": "OpenDoc"
},
{
"title": "Close",
"action": "CloseDoc"
}
]
}
0742 【だん吉】 株価【19】 【478円】 2011/01/01(土) 03:49:58ID:???
できました
あいがとう
0743nobodyさん2011/01/01(土) 05:08:38ID:???
できないよ。
外側の配列に名前つけて試して、さらに削ってためしたけどだめです。

たぶん、みなさんの環境ではできちゃってるのかな。
0744nobodyさん2011/01/01(土) 05:53:04ID:???
pythonのJSONモジュールって複数あるからなぁ
0745nobodyさん2011/01/03(月) 20:31:16ID:???
>>741ならうまくいくとおもうけど。
0746nobodyさん2011/01/05(水) 05:55:07ID:???
GAEのurlfetchでログインした外部のサービスから得た認証クッキーを
ユーザーに送ることでユーザー側のjavascriptから直接外部サービスに
アクセスすることってできますか?
0747nobodyさん2011/01/05(水) 06:03:33ID:???
あ、認証情報をセッションに頼らずにhiddenとかに入れて独自に認証すりゃできますよね
でもなんかセキュアじゃないような・・・

ご意見をお願いします。
0748nobodyさん2011/01/05(水) 06:20:32ID:???
>>746
そんなことできるはずねーだろ
0749nobodyさん2011/01/05(水) 13:43:59ID:???
oauthってのが理想に近いのでしょうか?
0750nobodyさん2011/01/05(水) 15:05:44ID:???
>>749
理想が何なのかわからん
0751nobodyさん2011/01/09(日) 11:08:43ID:???
Use the appcfg download_app command to download your application's code. If you do not want any admin to be able to download code, you can permanently prohibit code downloads. New!

ソースダウンロードできるの?
0752nobodyさん2011/01/09(日) 12:32:21ID:???
オライリーから本でるみたい
http://www.oreilly.co.jp/books/9784873114750/
0753nobodyさん2011/01/09(日) 13:13:07ID:???
また糞本が増えただけだな
そもそもオンライン情報だけで充分だし
バージョン上がったら使えなくなる本なんて金がもったいなくて買えんわ
0754nobodyさん2011/01/09(日) 13:18:08ID:???
もったいないって、、
社会人の朝食代レベルの金額なんだから別にそこまでないだろ…
俺はささっと買うわ
0755nobodyさん2011/01/09(日) 13:28:08ID:b7LWieM1
おまえ豪華な朝食だな
0756nobodyさん2011/01/09(日) 14:23:00ID:???
>>751
これできたっけ?
0757nobodyさん2011/01/09(日) 15:13:04ID:???
しかし、本の内容は糞っぽいよ
目次を見る限り
0758nobodyさん2011/01/09(日) 15:35:39ID:???
確かに…。基本的な部分だけか
まぁ買った人はレビューよろしこ
0759nobodyさん2011/01/10(月) 10:21:50ID:???
application = webapp.WSGIApplication([('/([a-zA-Z0-9]+)/(a-zA-Z0-9)', Main)], debug=True)
run_wsgi_app(application)
こんな感じにマッピングしたときに、Mainに正規表現で拾った値を渡すにはどうしたらいいでしょうか?
0760nobodyさん2011/01/10(月) 11:18:57ID:???
class Main(webapp.RequestHandler):
  def get(self, match1, match2):
0761nobodyさん2011/01/10(月) 11:31:41ID:???
>>760
ありがとうございます
0762nobodyさん2011/01/10(月) 15:41:16ID:???
application = webapp.WSGIApplication([('/(?P<hoge>[a-zA-Z0-9]+)/(?P<fuga>a-zA-Z0-9)', Main)], debug=True)
run_wsgi_app(application)

class Main(webapp.RequestHandler):
  def get(self, **kw):
    kw['hoge']
    kw['fuga']
0763nobodyさん2011/01/11(火) 21:18:58ID:???
ifの分岐でself.response.out.writeしたあと、それ以降の処理はやりたくないとき、
何を使えばいいのでしょうか?
exit()だと出力されずに終わってしまいます
0764nobodyさん2011/01/11(火) 21:31:38ID:???
763
自己解決しました。
0765nobodyさん2011/01/11(火) 21:47:05ID:???
>>764
2ちゃんでは、質問したことを自己解決した場合は
その方法を書くのが礼儀
0766nobodyさん2011/01/11(火) 22:20:18ID:???
>>765
return これでした。
基本ですが忘れてました
0767nobodyさん2011/01/14(金) 23:55:42ID:???
無料の場合、cronの数は制限されていますか?
3つ目がfailedになってて、logにもエラーが記録されてないので原因が特定できず困ってます。
0768nobodyさん2011/01/15(土) 02:20:08ID:???
まずは2つめと3つめを入れ替えてみよう
0769nobodyさん2011/01/15(土) 04:47:47ID:???

2011-01-15 04:43:54 Running command: "[u'D:\\Python\\pythonw.exe', '-u', 'D:\\Program Files\\Google\\
google_appengine\\appcfg.py', '--no_cookies', u'--email=email@my.com', '--passin', 'update', 'G:\\app']"
2011-01-15 04:43:54 (Process exited with code -1073741515)

You can close this window now.

このようなエラーがでてアップロードできないのですが
どういったことが考えられますか?
0770nobodyさん2011/01/15(土) 05:08:46ID:???
GAE側に障害発生中とか
0771nobodyさん2011/01/15(土) 05:57:02ID:???
>>770
ありがとうこざいます
明日またやってみます > <
0772nobodyさん2011/01/17(月) 01:40:56ID:???
ttp://codepad.org/Fef3UIgB
メールにかかれたURLのページをfetchして返信するappを作りましたが
http://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:%E9%95%B7%E3%81%84%E3%83%9A%E3%83%BC%E3%82%B8
などのサイズの大きいページを指定するとエラー↓になります。
The API call mail.Send() required more quota than is available.
一体何のquotaが超えているのでしょうか?

ttp://code.google.com/intl/en/appengine/docs/python/mail/overview.html
を見ると、メールサイズの制限は10MBなので、大丈夫なはずです。
また、このエラーの後でも普通サイズのページを指定すると正常に動作します。
0773nobodyさん2011/01/17(月) 04:00:43ID:???
administratorから出してるか
0774nobodyさん2011/01/17(月) 23:22:32ID:???
出しています
0775nobodyさん2011/01/18(火) 12:56:40ID:???
datastoreのエンティティが更新された履歴って残せますか?
0776nobodyさん2011/01/18(火) 13:46:53ID:???
ログに書き出すか datastore にログ用 entity 作って自分で記録汁
だけど dashboard から更新したらやっぱり記録されない
0777nobodyさん2011/01/18(火) 17:36:02ID:???
了解 bigtableってプロパティレベルで履歴が残るって解説読んだことがあった気がしたけど
datastoreではできないんですね
ありがとうございました
0778nobodyさん2011/01/23(日) 12:57:55ID:???
オライリーの本キタ━━━━(゚∀゚)━━━━!!
0779nobodyさん2011/01/23(日) 19:01:22ID:???
>>772
http://code.google.com/intl/ja/appengine/docs/quotas.html
送信されたメッセージ本文のデータ 340 KB/分
0780nobodyさん2011/01/23(日) 21:22:35ID:/P06sEKg
オライリーの「プログラミング Google App Engine」のサンプルコードってどこにあるの?

本にはここを見ろと書いてあるんだが見つからない
http://www.oreilly.co.jp/books/9784873114750/
0781nobodyさん2011/01/23(日) 22:58:55ID:???
>>780
何ページに書いてある?
俺の予想は海外のオライリーサイトだと思うよ
0782nobodyさん2011/01/24(月) 12:56:51ID:???
pytz使ってる人いませんか?
GAE用に最適化されてるgae-pytzを使おうと思ったんですが
pytz本体のバージョンがpytz 2010oなのにgae-pytzが2010hで更新止まってるんですが
何か問題あったんでしょうか?
0783nobodyさん2011/01/24(月) 21:08:22ID:???
>>778
おらおらおらおらオラオラオラオラオラオラオラオラオラオラオライリー
0784nobodyさん2011/01/26(水) 12:37:51ID:???
>>780
そのページ → 原著のページ → 著者のページ
に行けばサンプルコードがあるよ。
0785nobodyさん2011/01/30(日) 13:22:29ID:???
slim3使ってるんですが、同時にデータ書き込みがあった場合ってどうなるんでしょうか?
エンティティのロックってのがいまいち理解できない・・。
0786nobodyさん2011/01/30(日) 17:10:24ID:???
重複スレができたので、こっちはpython、あっちがjavaということになってる
0787nobodyさん2011/01/30(日) 17:14:54ID:???
>>786
ありがとう
0788nobodyさん2011/01/31(月) 12:55:21ID:???
600件くらいのCSVデータをdatastoreにアップロードしたいのですが、
中にリストプロパティに入れたいデータがあるんです。
http://code.google.com/intl/ja/appengine/docs/python/tools/uploadingdata.html
どうやったらいいんでしょうか?
ヒントだけでもお願いします。
0789nobodyさん2011/02/01(火) 13:23:47ID:???
http://groups.google.com/group/google-app-engine-japan/web/tips-wiki
0790nobodyさん2011/02/05(土) 12:13:19ID:???
>>789
なるほど、そういうことですね。
0791nobodyさん2011/02/05(土) 17:27:35ID:???
{% for %}にジェネレータ渡しちゃいけないんだな
気付けば当たり前だけど嵌ったので書いとく

==*.py==
xs=(1,2,3,4,5)
template_values = {
'xs1': ( x*x for x in xs ),
'xs2': ( x*x for x in xs ),
}

==テンプレ1==
{% for x in xs1 %}
{{x}},
{% endfor %}
{% for x in xs1 %}
{{x}},
{% endfor %}

==テンプレ2==
{% for x in xs1 %}
{{x}},
{% endfor %}
{% for x in xs2 %}
{{x}},
{% endfor %}

テンプレ1 => 1,4,9,16,25,
テンプレ2 => 1,4,9,16,25,1,4,9,16,25
0792sage2011/02/06(日) 09:32:44ID:CTIgjDfj
>>680
同じ症状で色々と試したら、解決しました。
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
このラインを
#putenv(key, item)
のようにコメントアウトしたらおkでした。
次のラインに
self.data[key.upper()] = item
がありますし、__getitem__は、
self.data[key.upper()]
を返しますので、問題ありません。
何処にあるかわかりませんが、putenvにバグがあると思います。というか、むしろ必要性を感じません。
他にPythonの開発してたら、その時は元に戻したほうがいいかもしれません。

ちなみに、os.py:410に、
# Fake unsetenv() for Windows
# not sure about os2 here but
# I'm guessing they are the same.
などというコメントがありますから、いい加減さが目だちます…orz

誰かの参考になれば幸いです。
0793nobodyさん2011/02/06(日) 09:33:51ID:???
うわ、上げてしまった…
スマソ…orz
0794nobodyさん2011/02/06(日) 09:39:36ID:???
しかも、>>696とか…
死にたい…
0795nobodyさん2011/02/06(日) 10:39:03ID:???
>>792

>>680じゃないけど

http://localhost:8088/日本語
アウト
http://localhost:8088/日本語.html
OK
http://localhost:8088/日本語/temp.html
OK
コメントアウトしてもしなくても症状変わりません。
0796nobodyさん2011/02/06(日) 11:33:35ID:???
>>795
GAEサーバー再起動しました?
あと、コールスタックは>>680と同じですか?
コメントアウトしたなら、OSErrorのコールスタックも変わってくるはずです。
0797nobodyさん2011/02/06(日) 13:15:58ID:???
>>796
GAEサーバー再起動したら正常に動作いたしました。
知識不足のせいでお手数をおかけしました。

日本語URLを扱っていてたまたま最後は半角で終わるため
直接は問題は出ていませんでしたが、これですっきりしました。
ありがとうございました。
0798nobodyさん2011/02/06(日) 17:37:55ID:???
GAEでPHPを使う方法がわかりません
モジュールとしてスクリプトを書いていいんですか?
それともCGIのように1行目に実行ファイルへのパスを書くんですか?
0799nobodyさん2011/02/06(日) 17:41:11ID:???
>>798
AmazonEC2なら簡単に使えますよ
0800nobodyさん2011/02/06(日) 17:43:02ID:???
EC2って有料でしょ?有料はいりませんよ?
0801nobodyさん2011/02/06(日) 18:55:40ID:???
つまんないから帰ってくれないか
0802nobodyさん2011/02/06(日) 20:16:57ID:???
質問に対して人をおちょっくって来たほうが悪い
0803nobodyさん2011/02/06(日) 20:22:45ID:???
>>798
http://codezine.jp/article/detail/3948
正直言って、無駄な労力だと思うので、他に行った方がいいと思う。
0804nobodyさん2011/02/06(日) 20:45:26ID:???
pythonでHPって持てるの?ここ
0805nobodyさん2011/02/07(月) 00:02:52ID:???
>>804
http://hp.com/
0806nobodyさん2011/02/07(月) 02:43:34ID:???
著しくレベル低いなw
0807nobodyさん2011/02/07(月) 03:02:24ID:???
GAEは糞
何度でも言うよ
GAEは糞
0808nobodyさん2011/02/07(月) 03:25:00ID:???
どのへんが?
0809nobodyさん2011/02/07(月) 17:39:36ID:qvm2E2Ff
アカウント取得しまくったらBANされたりするかな?
0810nobodyさん2011/02/09(水) 18:15:53ID:???
それは使い方に問題があるだろw
0811nobodyさん2011/02/10(木) 04:11:24ID:J9bT3WK+
混雑してくるとやたら重くなるんだけど、そういうもんなの?自動でスケーリングしてくれるんじゃないの?
0812nobodyさん2011/02/10(木) 10:13:54ID:???
GAEの癖を理解してコードを書かないと性能を発揮できない。
特に書き込み。
0813nobodyさん2011/02/10(木) 11:34:23ID:UzZbws4D
blobstore で保存された画像のURLって静的に保証されたものなんですかね?
datastoreにblobkeyだけ保存して、毎回取り出すために
blob_info = blobstore.BlobInfo.get(blob_key)
self.send_blob(blob_info)
しないといけないんですね?
そのリクエストを受け付けるURLにblob_keyを混ぜるとしたら、〜.jpgみたいなURL作るためには
/blob_key/temp.jpg
みたいなURL書き換えでキーを渡さないといけないんでしょうか?

例えば外部からbolbstore上の画像をダイレクトで参照できるURLってないのかな?

なんか勘違いしてるんですかね?
0814nobodyさん2011/02/10(木) 12:10:30ID:???
>>813です
get_serving_url
これ使えばいいみたいですね。調べてみます。
0815nobodyさん2011/02/10(木) 14:39:53ID:???
キーで使われる文字ってBase64で使われる文字だけだと思ってたんだけど
さっきみたら-(マイナス)が使われてたんだけど。
0816nobodyさん2011/02/10(木) 23:39:29ID:???
それがどうかしましたか(棒)
0817nobodyさん2011/02/11(金) 14:36:01ID:???
最近slim3を導入しました。今までトップページを/main.jspにしていたのですが/に変えたいです。
/main.jspへのアクセスを/に転送したいのですがどうしたらよいでしょうか?
AppRouterに設定(isStaticもちゃんとオーバーライド)しても、web.xmlに設定しても403になってしまいます。
0818nobodyさん2011/02/12(土) 01:51:23ID:???
>>817
javaの方のスレに誘導でいいのだろうか

Google App Engine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267094290/
0819nobodyさん2011/02/12(土) 12:18:28ID:???
逝ってらっしゃいませご主人さま
0820nobodyさん2011/02/12(土) 12:31:53ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data["ab"]=data.a+data.b

'data' object does not support item assignment

db.modelオブジェクトに読み出しあとで列を追加すようとするとエラーが出ます。
Djangoに渡す前にどうしても列を加工したり追加したい場合、どうしたらいいでしょうか?
dictにコピー?
0821nobodyさん2011/02/12(土) 12:53:08ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()
ab=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data.ab=data.a+data.b
0822nobodyさん2011/02/12(土) 13:44:58ID:???
なるほど!
0823nobodyさん2011/02/12(土) 13:53:58ID:???
webapp.Templateを使うときはDjangoバージョンの警告を出さないでほしいな
とりあえずJinja2に移行中
0824nobodyさん2011/02/12(土) 14:02:46ID:???
>>818
誘導ありがとうございます
0825nobodyさん2011/02/12(土) 22:43:25ID:???
ロードマップにPython 2.7のサポートとかあるけど前からあったっけ?
http://code.google.com/appengine/docs/roadmap.html
0826nobodyさん2011/02/13(日) 03:31:54ID:???
>>825
2.6スキップかよ
debianがちょっと前が2.5で今が2.6で両方ダメでメンドクセー
0827nobodyさん2011/02/13(日) 03:44:12ID:???
>>825
こんなのあったんだ。さんくす。
そのいちばん上に、
* SSL access on non-appspot.com domains
とあるんだけど、これって可能なの?SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?
あと2番目が
* Full-text Search over Datastore
なんだけど、いつになったら実装してくれるのだろうか。
0828nobodyさん2011/02/13(日) 04:14:25ID:???
>SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?

それは鯖がApacheの場合の話じゃなくて?
0829nobodyさん2011/02/13(日) 05:01:21ID:???
apacheでも大丈夫だよ。
ブラウザも最近のはたいてい対応しているが、
win xpのIEは7でも駄目なので、そこがネック。
0830nobodyさん2011/02/13(日) 12:24:24ID:???
>>829
これってこれのことでしょうか。
ttp://builder.japan.zdnet.com/news/story/0,3800079086,20402262,00.htm
こんなのあったんだ。
0831nobodyさん2011/02/13(日) 13:40:25ID:???
jsonengineっていうのどうなのか試そうと思ったがデプロイできない・・・
0832nobodyさん2011/02/13(日) 16:45:30ID:???
GQLでORDER BY foo ASCするとfoo=Noneが先頭にきちゃってうざいんだけど・・・
他のDBでもこういう仕様だっけ?

後ろに来てもらうことってできまするか?
0833nobodyさん2011/02/13(日) 18:40:02ID:???
むり
0834nobodyさん2011/02/13(日) 18:49:14ID:mo0rSdkS
なんでGAE使うひとってみんな他のDBと比べたがるんだろう
「あっちでは出来たのに」ってのが多すぎるわ
0835nobodyさん2011/02/13(日) 19:21:01ID:???
まぁGQLって名乗っちゃってるしね
Goくらい、何かを連想させない命名にしておけば
0836nobodyさん2011/02/13(日) 20:44:19ID:???
>>832
foo > NULLとか出来なかった?(または"foo > :1", None)
0837nobodyさん2011/02/13(日) 21:12:14ID:???
google optimized language = go-lang
0838nobodyさん2011/02/14(月) 18:20:13ID:???
>>836
できませんでした。うーむ。なれるしか無いか。
■ このスレッドは過去ログ倉庫に格納されています