本サイトは、Pythonを勉強していく過程を公開していくために作成しました。GAE上でのWebアプリケーション開発を中心に勉強していく予定ですが、それ以外のテーマの記事も書いていく予定です。系統だった.... Read more
Categories » ‘GAE’
ZIPでGAEにサイト構築
1月 28th, 2011 by adminみなさん、GoogleAppEngineってご存知でしょうか?
そうです、Googleの提供するWebアプリケーションプラットフォームです。
1日1GBまでのトラフィックであれば、料金は一切かかりません。中小規模のサイトであれば無料利用分で運用でちゃいます!しかも、万が一、サイトがめちゃくちゃ人気になって、1日100万pvを超えるようになったとしても、利用料を支払うだけでそのまま運用できちゃいます。きっと、広告収入の一部で利用料はまかなえちゃうと思いますよ。
とはいうものの、GoogleAppEngineって難しそうですよね。
HTMLとCSSしか分からないけど、無料で使えるならつかってみたい。そんな方、多いのではないでしょうか?
そんなあなたのために、サイトのZIPファイルをアップロードするだけでGAE上にWebサイトを構築できるアプリを作ってみました!
GAE/PythonでMemcachedを使ってみた
1月 25th, 2011 by adminMemcached使ってみました。単純な例で動作を確認後、python-blog-systemの画像出力部分に適用し、ベンチマークをとりました。
Memcachedとは
分散KVS(キーバリューシステム)の一種です。いわゆるRDB(リレーショナルデータベース)は、スケールアウトに向かない構造をしているために、安いサーバをいっぱい並べても性能がリニアに向上しません。Memcachedでは、トランザクションや、データの耐久性などを保証しないかわりに、大量のデータを、高速にキャッシュすることができます。詳しい説明は本家でどうぞ⇒http://memcached.org/ 概要が知りたければwikipediaがお手軽です。
シンプルな例
まずは、非常にシンプルなコードを書いて動作を確認しました。
- 初回アクセス: 何も表示されません。
キーweatherに対して何も設定されておらず、Noneが返されるため、何も表示されません。 - 2回目以降: snowingと表示されます。
初回アクセス時に、キーweatherに”snowing”が設定さたので、snowingと表示されます。
ソースコード
読み出し⇒書き込みという順序になっているので、初回アクセス時は何も表示されませんが、3600秒以内に再アクセスするとsnowingと表示されます。
本日の実装内容
1月 25th, 2011 by adminpython-blog-systemに以下の4項目のアップデートをしました。 ■下書き機能 外から見ても分からない機能ですが、運用上ほしい機能なので作ってしまいます。 ■公開日時指定をGMTではなく.... Read more
ブログに予約投稿機能を実装
1月 24th, 2011 by adminpython-blog-systemに予約投稿機能を実装しました。
記事一覧表示
1 2 3 4 5 6 | entries = Entry.all().order("-datetime") if not users.is_current_user_admin(): entries = entries.filter("datetime < ", datetime.datetime.now()) entries = entries.fetch(step + 1, page * step) for entry in entries[:step]: printEntry(self, entry) |
entry.datetime(記事の公開日時)が、現在時刻よりも古いものだけを取り出すようにしました。RSSも同様の修正をしています。
記事投稿
フォームの表示では、entryのdatetime属性を、フォーマットして表示するようにしました。
« More »
RequestHandlerとdb.Modelを追加
1月 23rd, 2011 by admindb.ModelページとRequestHandlerページを追加しました。RequestHandlerページは一通りのことを説明できたと思いますが、db.Modelページはまだまだ加筆が必要です。 今.... Read more
GAE/Python で auto_increment
1月 18th, 2011 by adminGAE/Pythonでデータベースを使う場合は、google.appengine.extパッケージのdbモジュールを使います。インスタンス間の関係は、ReferencePropertyを使ってあらわす.... Read more
URL短縮サービスつくってみた
1月 16th, 2011 by adminGAE/PythonでURL短縮サービス作ってみたので、ソースコード丸ごと公開しちゃいます。 作成したサービスはこちらから利用できます。⇒http://pyshortener.appspot.com/.... Read more
GAE/PythonのPOSTは上限10485760バイト
1月 14th, 2011 by adminGAE/Pythonでの、POSTの上限サイズは10MBです。開発環境と本番環境のそれぞれで実際に確認してみました。 開発環境でのメッセージ 10 * 2^20バイトまでしか対応していないようです。 .... Read more
App Engine 1.4.1リリース文
1月 10th, 2011 by adminリリースノート(日本語訳) App Engine 1.4.1 をリリースしました – High Replication Datastore の紹介 リリースノート原文(英語) Announ.... Read more
GAE/PythonブログにWPデザインを適用
1月 10th, 2011 by adminpython-blog-systemにWordpress風のデザインを組み込んでみました。まだ、細かい部分は調整できていませんが、雰囲気はかなりWordpressっぽくなったのではないでしょうか?Wo.... Read more
ZIPアップロード
1月 8th, 2011 by adminZIPファイルをアップロードして、そのままホスティングできるアプリケーションを作ってみました。 サンプル環境 http://study-python2.appspot.com/ ※特にセキュリティーを.... Read more
URLFetchのタイムアウト制限が大幅緩和
1月 8th, 2011 by adminGoogle App Engine SDK 1.4.1がリリースされ、URLFetchのタイムアウト制限が300秒に緩和されました。今までは、最大で10秒だったので、一気に30倍まで枠が広がったことに.... Read more
Google App Engine 1.4.1リリース
1月 8th, 2011 by adminVersion 1.4.1が、2011年1月5日にリリースされていました。変更点は以下のとおりです。データストア関連の機能追加と不具合修正が行われているようです。この修正は、Python環境に対して適.... Read more
GAEをプライベートクラウドで運用する
1月 6th, 2011 by adminGAEをプライベートクラウド(というか、自社サーバ)で運用する方法がないか簡単にしらべてみました。 2010年の5月20日に、VMWareとの提携などのリリースがでていますが、それ以降は動きがないよう.... Read more
書籍購入
1月 5th, 2011 by adminAmazonでPython関係の書籍を見ていて、やたらと評価のよいものを見つけたので購入しました。金曜日には届くようです。北海道なので、アマゾンプライムを使っても配送に2,3日かかるのが残念です。 .... Read more
ブログに画像添付機能を実装
1月 5th, 2011 by adminpython-blog-systemに画像アップロード機能を実装しました。画像アップロード機能と一言でいっても、実際には以下の3つの機能から成り立っています。 画像のアップロード アップロードした画.... Read more
PILインストール/画像処理でエラー
1月 5th, 2011 by adminGoogleAppEngineの開発環境はよく出来ているのですが、デフォルトでは画像処理ライブラリがインストールされません。GoogleAppEngineの公式サイトの、PIL のインストールにも掲載.... Read more
仕事がいっぱい→TaskQueueを使おう
1月 3rd, 2011 by admin2,3か月前に作成したサーバの監視アプリのソースコードを紹介します。5分間隔で数百件程度のURLにリクエストを投げ、そのレスポンスタイムを取得するだけの単純なアプリなので、機能としては単純なのですが、.... Read more
URLの表記を45文字までに制限しました
1月 3rd, 2011 by adminpython-blog-systemで、投稿内に長いURLを記入した際に、45文字目までしか表示しないように変更しました。 変更前 ::CODECOLORER_BLOCK_15:: subの第2引数を.... Read more