タグ

ブックマーク / php6.jp (3)

  • GAE/Python - RequestHandler

    GAE/Pythonで最初に戸惑うのはRequestHandlerだと思います。新規アプリケーション作成時に自動生成されるので必要に応じて書き換えることができれば問題ありません。 RequestHandlerとは GAEにおいて xxx というIDでアプリケーションを公開すると http://xxx.appspot.com/ というURLが割り当てられます。ウェブアプリケーションには、トップページ、記事のリスト、記事の詳細など複数のページがありますが、それぞれのページにどういうURLを割り当てますか?こんな感じに割り当てる場合が多いと思います。RequestHandlerの役割はURLと処理を結びつけることです。 トップページ http://xxx.appspot.com/ 記事一覧ページ http://xxx.appspot.com/list 個別記事ページ http://xxx.app

  • GAE/Python - DataStoreの使い方をまとめてみた

    DataStoreとは 記事内のDataStoreは、GoogleAppEngineのデータストアのことを指す。GoogleAppEngineは、ファイルの書き込みが一切できないため、DataStoreを使う以外にデータを永続化する方法はない。短期であればmemcachedに保存することもできるが、memcachedに保存されたデータは保存期間が保証されないため、一時データをキャッシュして高速化(or 負荷軽減)以外には実質つかえない。 DataStoreの特徴 DataStoreの特徴は、スケーラブルであること。データ数が1万件でも1億件でもほぼ同じ時間で結果が返ってくる(らしい)。ただし、通常のRDBでは簡単にできる操作がDataStoreでは非常に重い処理だったり、不可能だったりするので注意。 苦手な処理 件数のカウント ⇒件数のカウントは、データ全体を取ってくる処理に近いだけの処

  • URL短縮サービスつくってみた « python練習帳

    GAE/PythonでURL短縮サービス作ってみたので、ソースコード丸ごと公開しちゃいます。 作成したサービスはこちらから利用できます。⇒http://pyshortener.appspot.com/ 作成にあたってのポイント 実装上するにあたって工夫した点を紹介します。 連番の取得 短縮URLの短縮コードって連番を16進数や64進数などにエンコードしたものですよね。ということで、短縮URLを作成するためには、連番を作る必要があります。DBとしてMySQLを使っていればauto_incrementを指定するだけで連番が設定されます。だけど、GAE/Pythonには連番を自動生成する手法が容易されていません。そこで、最大値を管理するデータモデル(テーブル)を作成し、getNextNum()で取得できるようにしました。トランザクション内で操作しているので、同じ数字が2回発行されることは無いはず

  • 1