Google App Engine for Python 6アプ目
■ このスレッドは過去ログ倉庫に格納されています
>>277 app.yamlがあるフォルダへ移動して dev_appserver.py . (半角ピリオド) としてみたらどうだ? あと、家のGAEバージョンは? >>278 先生がギブアップしてしまった。 >>279 >>273 に一通り書いたつもりだけど、GAEのバージョンは1.7.5です。 C:\Users\Y.Sato\Desktop\GAE>"C:\Program Files (x86)\Google\google_appengine\dev_ appserver.py" ae-00-testing こんな感じでコマンド打ってます。 半角とピリオドつける場所、わかりません。。。 >>280 デスクトップのGAEフォルダの下に、 ae-00-testing というフォルダがあって、 そのフォルダ内にapp.yamlがあるの? cd ae-00-testing してから dev_appserver を叩いたらどう? >>281 一つ目の質問は、そういうことです。 それだと、上手くいかないですね。 コマンドプロンプトで dir C:\Users\Y.Sato\Desktop\GAE dir C:\Users\Y.Sato\Desktop\GAE\ae-00-testing やって結果晒して 2013/12/17 16:26 <DIR> . 2013/12/17 16:26 <DIR> .. 2013/12/03 16:44 <DIR> ae-00-testing 2013/12/14 23:53 <DIR> ae-01-webapp 2013/12/17 16:24 839 ae-01-webapp.zip 2013/12/15 17:18 <DIR> ae-04-templates 2013/12/17 16:26 2,343 ae-04-templates.zip 2 個のファイル 3,182 バイト 5 個のディレクトリ 386,548,281,344 バイトの空き領域 2013/12/03 16:44 <DIR> . 2013/12/03 16:44 <DIR> .. 2013/12/31 13:59 110 app.yaml 2013/12/29 23:14 68 index.py 2 個のファイル 178 バイト 2 個のディレクトリ 386,547,691,520 バイトの空き領域 pastebin.comにdev_appserver.pyを実行したときのエラーメッセージを全部貼れ >>287 ..\GAE>python "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py" ae-00-testing 先頭に"python"をつけて実行してみて >>288 いけました! ありがとうございます! これ、学校の先生に報告したら、喜ばれる! (でも、何が学校と違ったんでしょうか??) >>289 プロンプトでこれを実行して >assoc .py .py=ほにゃらら みたいなのが出力されるから >ftype ほにゃらら を実行 その出力結果を貼って >>290 C:\Users\Y.Sato\Desktop\GAE>assoc .py .py=Python.File C:\Users\Y.Sato\Desktop\GAE>ftype Python.File Python.File="C:\Python27\python.exe" "%1" %* 関連付けが間違ってるのかと思ったらそうではないようだ 原因は分からん エラーメッセージから何らかの原因で引数がうまく渡っていないことが 想像できた。こういう場合はOSがやらかしている可能性が高いので 直接python.exeを呼んだら出来たというわけ https://cloud.google.com/console/project この左側メニューの課金>請求先アカウントの一部が勝手にキャンセルされてしまった。 テスト段階だから課金は当然$0の延滞なしなので理由不明。(課金を無効にしたまま暫く放置すると強制キャンセルされる?) >この請求先アカウントはご利用いただけなくなりました。 >残りの請求書や料金、払い戻し(該当する場合)の詳細はこちらをご覧ください。 プロジェクトのほうから課金を有効にしようとするとエラーになる(=課金設定が必要なAPIが使えないという状態) >サーバー エラー >申し訳ございません。 >もう一度お試しください。問題が解決しない場合は、以下の [フィードバックを送信] を使ってお知らせください。 >下記の追跡番号をコピーしてフィードバックにご記入ください。よろしくお願いいたします。 >追跡番号: undefined エラーの原因となっているであろう、参照中のキャンセルされた請求先アカウントを変更しようとしたが そんなメニューはどこにもなく、請求先アカウントの再有効化のメニューもない。 完全に詰んだ。 >>294 まったく同じ現象でした アカウントは別に使えるので プロジェクトを作ってみたら作れました 古いプロジェクトは様子見て削除 今みたら課金有効化のエラーメッセージが変わってた >サーバー エラー >申し訳ございません。 >もう一度お試しください。問題が解決しない場合は、以下の [フィードバックを送信] を使ってお知らせください。 >下記の追跡番号をコピーしてフィードバックにご記入ください。よろしくお願いいたします。 >追跡番号: undefined ↓↓↓↓↓↓↓↓ >サーバー エラー >undefined Googleさんよ、頑張ってなおしてくれ このままだとAWSに揺らぐ気持ちを抑えられない 請求先アカウント名 ステータス Billing Account for XXXX 閉鎖 Billing Account for XXXX 閉鎖 Billing Account for XXXX 閉鎖 Billing Account for XXXX 閉鎖 この請求先アカウント一覧リストにも削除メニュー必要じゃねって毎回思ってる 閉鎖して関連付けられなくなったアカウントが残り続けているのは見た目、心象ともに悪し コメント欄追記でバージョン管理している会社のソースコードの手直しを任された感じといえば分かるだろうか 頑張って直してくれ >>294 あとapp engine のbilling settingsで決済カードを編集したり削除して改めて登録することもできます pydevのアップデートをチェックしてアップデートしたあと デバッグしようとすると ImportError: No module named json というのが出て それはdjangoの中へのパスをプロジェクトプロパティの pyshonpathで指定したら出なくなったんですが 次に Unexpected error setting up the debugger Socket operation on nonsocket: configureBlocking が出て来ました 回避方法・元に戻す方法などなんでもいいので教えてください win8.1 64 eclips kepler pydev 最新のをPyDev Update Site - http://pydev.org/updates/ から再インストールしてみました 何卒お助けください アプリケーションランチャーおよびコマンドプロンプトからは開発サーバーが起動できます Pydev のStart Debug Server も起動できます pydevのDebug Configrationsを使ったデバッグで失敗します コンソール出力です pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower) pydev debugger: starting pydev debugger: google app engine integration enabled WARNING 2014-01-31 14:27:42,539 urlfetch_stub.py:115] No ssl package found. urlfetch will not be able to validate SSL certificates. WARNING 2014-01-31 14:27:42,628 rdbms_mysqldb.py:74] The rdbms API is not available because the MySQLdb library could not be loaded. Error: option --python_startup_script not recognized Runs a development application server for an application. dev_appserver.py [options] <application root> Application root must be the path to the application to run in this server. Must contain a valid app.yaml or app.yml file. Options: --address=ADDRESS, -a ADDRESS <以下略> option --python_startup_script についてぐぐってみましたが有力な情報が出てきません pydevをダウングレードする方法はないでしょうか? よろしくおねがいします pydevをダウングレードしたら直りました お騒がせしました DataStoreへのアクセスを減らすためにmemcacheを使おうと思ってるのですが、 これってアクセスされないデータから順に削除される見たいな記述があるんですが、 必ず消されないデータみたいなものって定義できます? やりたいこととしては、頻繁に書き換えられるエンティティがあるんで、 それをキャッシュしておいて、 書き換えが発生した場合、キャッシュのみを更新していって、 30分とか1時間とか決まった時間経過するとバッチで、 DataStoreに書き込んで最新化するようにしたいんです。 NDBは書き込みにキャッシュ無いよ 読み込みのキャッシングにmemcache使ったり コンテキスト内でのキャッシュがあるぐらい 消されないデータってのはmemcacheじゃ無理 そもそも永続化の仕組みじゃないんだから いつ消えるか分からないし保証はない 何を扱ってるか見えないからこれ以上言いようが無いけど 途中の更新が喪失しても問題ないものなら memcacheに通常書き込んで ただtaskqueで30分おきとかで永続化したら? memcacheは読み出しのキャッシュなんだし 存続時間に保障がない仕様なんだから リスク覚悟でやるしかないね 作るのは簡単なんだし Discounted Instanceみたいなbackend用の割引サービスほしいのお GAEで静的サイトアプリ作った場合 こんな感じでindex.html置いて http://www.hogehoge.com/oppai/index.html 後ろの/が無いとアクセス出来ないんだけど X http://www.hogehoge.com/oppai ○ http://www.hogehoge.com/oppai/ 上が表示出来て下が出来ないのはapp.yamlの書き方間違ってる? app.yamlはこんな↓ application: アプリ名 version: 1 runtime: python api_version: 1 handlers: - url: (.*)/ static_files: htdocs\1/index.html upload: htdocs(.*)/index.html - url: /(.*) static_files: htdocs/\1 upload: htdocs/(.*) 過疎ってるからレスあるのか不安だけど質問していい? many-to-many(多対多)が必須なアプリケーション (Twitterならuser-timeline)ってGAEじゃ作れないよね? timelineにListProperty付ける方法だと 数万人のフォロワーにtimeline配信(Fanout)するの無理だし (仕様です、で押し通すのはちょっと…) UserTimelineの結合テーブル用意する場合だとパフォーマンス的に問題あるよね 特にFanout書き込み処理時 (書き込みあるごとにフォロワー数万人分の参照用データを書き込み…) (TaskQueueに投げて処理するとコスト高くないかい?) >>310 そういうのこそ Google App Engine が大好きな分野だろう パフォーマンス的にも、100% 問題ない。 対多だったらCloud SQLかと思ってたけどそうでもないの?作り方次第? app = webapp2.WSGIApplication( [('/',OpenPage), ('/result',PostPage) ], debug=True ) という形で作ったんだけど index.htmlみたいな物は無いのでしょうか? すごく久しぶりに弄ろうとしたら いつのまにか 10 個から 25 個にアプリケーション枠増えてるのね ネイティブスマホアプリのバックエンドに使ってみようかな >>141 試しにアプリ増やしてみたけど Python 2.5 でもまだいけてる >>131 どんどん使いやすくなるね ユーザー少なすぎてサービス終了にならないかどうか心配 >>316 マジ!? >>319 Amazonの方に人が流れてそうだから心配。Googleには頑張って欲しい。 まじかー、結構グラフ赤になること多かったから1ドル運用してみっかな 俺は使わんが、PHPに対応したのはいいと思う 次はRubyだな Herokuの客層を取り込めれば大きい >>319 ロックイン上等のシステム作っておいて 勝手に終了されたら潰れちゃう会社出てくるだろ AWS向けに移植するにしても金かかるんやぞw フロントエンド(HTML&JavaScript)部分は流用できるとしても データストア関連のコードは全部書き直しだわ だから心配してるんだよ 簡単に引っ越せたり そもそもどうでもいいサービスなら 客減ろうが潰れようが どうなろうと知ったこっちゃない データストア関連のコードを抽象化するレイヤーでwrapすれば良いNONI AWS の SQL で Master/Slave とか HRD の Datasore をエミュレーションする python ラッパー作ったら需要あるかな それなら最初から AWS で造った方が良いか >>325 そんな大事なサービスをGAEで作っちゃったんですか!? て話になる。 初心者質問ですみません。サービスを作って公開したところへスクリプトか何かでアタックされたら一気に課金枠内上限までいってサーバーが停止してしまうのでしょうか。Googleが感知してIPを弾いてくれたり、何らかのガードはGAEにデフォルトで付いてるのでしょうか。 もしそういった仕組みが無ければみなさんその辺りは自分で対策されているのでしょうか。 >>324 データストア関連コードの書き換えなんてそんなに面倒かな? >>331 一日単位で課金の上限に行くとサービス停止する IP弾く機能はあるけどIPの登録は自分でする必要がある 自分は月間の予算を3倍取っておいてサービス継続を優先してる 異常があったらすぐIP弾いたりする いままで一番多いのはBINGBOTだったけどね なくなったページにいつまでもアクセスしてくるからログがそればっかりになる 302返さない自分も悪いんだけどさ へんなアクセスの IP はプログラム自信で見つけることは可能なので自動化したいけど IP の登録はダッシュボードからしか出来ないのかな? アク禁 IP 登録用の API とかある? >>334 ないよ IPの登録はdos.yamlとかdos.xmlをアップロードすることで可能だから ファイルアップロードをapp engine内で行えば可能かも >>333 レスありがとうございます。IPは手動登録なんですね。 ロボット向けにきちんと正しいステータスコードを返すべきというのも参考になりました。 >>335 の方法も興味深いです。 ユーザー投稿有りでデータベースを増やしていく形のサービスの依頼(仕事レベルでは無い)を受けていて、アクセス過多以外にデータベースのデータ(イコールこのケースでは資産)をどうスクレイピングから保護するか、という事も気になっていました。 ベストはユーザー登録。 ユーザー未登録で投稿可能にするのであればIP監視も必要。 ユーザーエージェントもチェック。 IPやユーザーエージェントは偽装可能なので、他にクッキーかURLのquery経由で一時的なIDを渡してやってGAE側でvalidateする。 適当なIDを渡してもvalidateを通らないようにしておいて、一時IDはクライアントとGAE側で同じ生成アルゴリズムを用いて正当性を検証する。 というような事を考えています。 きっとまだ抜け穴はありそうなので引き続きデータ保護を検討してみます。 少し前にSimejiの騒動があったので、どう不正なアクセスからコンテンツのデータを保護するかという事が気になりました。 普段はクライアント側を書いていてサーバー側は初心者なのですが、万一参考になればと思って先の独り言の様な文章も投稿させて頂いた次第です。 スレ汚し失礼しました。 >>336 javascriptを使って認証cookei与えればjavascriptが走らない汎用Botは弾けるよ ただ、そのサイト狙い撃ちでスクレイピングしてくるやつなら当然ソースハックして 対策はしてくるだろうけどそれもちょっと難読化して暗号化ロジック隠せば 半分くらいのBot作者の手には負えないかも でも検索エンジン弾いちゃっていいのかってのはユーザビリティ考えるとどうなの?って感じ ユーザーがそこまで望むならメールフォーム使ったユーザー登録くらい作るよね >>336 ユーザー登録は google account で代用出来る 不正なアクセスあったらそのアカウントを自分の DB でブラックリスト化する 自分のみ利用したいんですが どこで設定するのでしょうか? 自分のみなら app.yaml で require: administrator だったかな PC向けページしか無くてスマホからの利用は不便なので、 中継サーバーでスマホ向けにするような Webアプリとか作ってみたいんだけど。 ちなみに PC向けページはレコーダーのDIGA、 LAN内のサーバーは rep2 動かしてる Win版 XAMPP、 アクセスしたい端末は iPod touch。 pythonスレで誘導されてきました。 本文コピペになってしまいますが、以下、ご教示頂けないでしょうか。 宜しくお願い致します。 http://yono.cc/python/gae/ こちらを参考にして、HelloWorldを表示するだけのWebサーバを作りました。 上記ページの「webapp フレームワークで Hello World を書き直してみる。」のところに掲載されているソースコードをまるまる利用しています。 しかし、実際にブラウザでアクセスすると以下の様なエラーが出るのですが、これは何が原因なのでしょうか・・・? Hello worldすら出来ないとかもうどんだけダメなんだ自分・・・ ERROR    2014-06-17 07:20:34,551 wsgi.py:262] Traceback (most recent call last):   File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 239, in Handle     handler = _config_handle.add_wsgi_middleware(self._LoadHandler())   File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 301, in _LoadHandler     raise err ImportError: <module 'test' from '/中略/channelapitesttest/test.py'> has no attribute app INFO     2014-06-17 07:20:34,555 module.py:639] default: "GET / HTTP/1.1" 500 - >>348 ソースやyamlの何処かに'test.app'ってのがありそうだな appって拡張子があるような罠 urlfetchでwait()をコールしないで通信が終わってるか確認する方法ってある? asyncで並列で通信して早く終わったやつから先にwait()呼びたいのだけど。 168 デフォルトの名無しさん [sage] 2014/07/03(木) 17:10:36.81 ID:/QLPOJJ3 Be: Dartプログラミング言語をGoogleのApp Engineがサポート…ついにサーバ言語としても位置づけ http://m.jp.techcrunch.com/2014/07/01/20140629googles-dart-programming-language-is-coming-to-the-server/ これでW3Cは無理が有る様に思うが、きっかけにはなりそう。 あまり使いたいと思わせる要素は少ないな。あるのは数の力かな。 多分この辺りの言語戦争がWebKit内で有って分裂したんじゃ無いだろうか。表面は違うが。 てっきりGoと住み分けさせるのかと思ってたけど、割と普通に被らせちゃうのね ここでこちらに誘導されたので http://peace.2ch.net/test/read.cgi/tech/1400479217/553 covendy を使いGAEにてデプロイして、htmlフォームから入力されたデータを一行ずつテキストファイルに書き込む処理をしているのですが、 処理に時間がかかり、deadlineを起こしてしまいます。 そこで Task Queue を使おうと思うのですが、使い方が分かりません。 なんらかのリンクを作り、そこにpostすることは分かったのですが、formからデータを取得するためにもう def post(self)は使っていますが、その処理でもTask Queue は使えるのでしょうか? また取得したデータの受け渡しは、どのように行っていますか? GAE じゃなくて Google Apps Script 使った方が良いかもね >>356 今のform受けクラスをtaskqueueに使って、そこにform受けて丸投げの皮をかぶせるのが 一番工数少ないかな テキストファイルだと壊れる可能性あるけどねー、ホームページのカウンターとか懐かしいな webapp2のURLルーティングにCoC機能を付けたいんだけど どういう方法がベストプラクティスかな myapp/ application/ model/ view/ controller/ app.yaml main.py ここのcontroller/フォルダに foo_handler.py bar_handler.py bazz_handler.py があったとすると "/foo"はfoo_handerに ”/bar"はbar_handerに "/bazz"はbazz_handerに スクリプトに明示的に記述せずとも自動的に設定されるようにしたい インデックスの数の上限がなくなってますね? 以前200と言われてて 英文の記事で5000と言及してるトピックがあって 今日本家のDatastore Indexesにも明確な数字の言及はなくなってます A,B,C3つのプロパティのあるエンティティをすべての組み合わせで検索するには AB,BC,CA,ABCのインデックスが必要だと思ったら違うっぽいね ABCのインデックスも必要ない どういう時に必要なんですか? カスタムインデックスの数の上限と、 1エンティティから発生するインデックスのエントリ数の上限は別物だよ。 >>>a = ['ringo','リンゴ'] >>>print a [{'ringo':'\xe3\x82'}]とか\u73feとかで表示されますが、これを日本語でちゃんと、'りんご'と表示させるにはどうすればいいですか? また、階層が深いと[<ringo: ringo object>]のようになったりもしますがこれの対処法も教えてもらえないでしょうか? >>369 これ質問者じゃない別の陰険な奴がわざとが貼りまくってるんだぞ 質問させて GAEにてDjango使ってWebサイトって公開できるんだよね? 料金はAWSの方が安いとか書かれてたけど 無料でどこまで出来るのかな? >>372 Django使ってWebサイトって公開できる 無料でやれる範囲一日200万PV程度(データ量なども関係する) 補足:無料枠はページの応答速度が重要でさっきのPVは60ms程度 Django使うと1000msくらいはかかるかも よって目安は12万PV/日 wordpressがpythonになってくれればなあ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる