Categories » ‘GAE’

ブログにDjango1.2.5を組み込みました

2月 13th, 2011 by

Djangoをpython-blog-systemに組み込みました。もともと、Pythonのソースコード内で、self.response.out.writeを使ってHTMLを出力していたのですが、テンプレートエンジンを利用することで、Pythonで記述したロジック部とHTMLを分離できました。

変更前

変更前のソースコードです。汚いなんてもんじゃありません。MVCが渾然一体となっています。小規模なアプリであればこれでも良いと思いますが、これ以上大きなプロジェクトを開発するのであればMVCきっちり分けたほうがよいでしょう。

GAE/PythonでDjango1.2.5を使う方法

2月 11th, 2011 by

本日リリースのApp Engine SDK 1.4.2から、新しいバージョンのDjangoを利用できるようになっているので、早速使ってみた。 ソースコード templateをインポートする前に、use.... Read more


GAE/Pでテンプレートエンジン使ってみた。

2月 11th, 2011 by

GAE/Python標準付属のテンプレートエンジンである.... Read more


GAE-Cron

2月 11th, 2011 by

GoogleAppEngine/Pythonを使って、CRONサービスを提供するサービスがあったので、参加してみた。 試しに1環境設置。ユーザ数の上限は50で、一人当たりの設定数の上限は5にしている。.... Read more


Twitterの検索機能はJS必須?

2月 11th, 2011 by

Twitterクライアントに、ハッシュタグ投稿機能を実装しました。 ハッシュタグを付けて発言しているときは、TLにハッシュタグの検索結果が表示されるのが自然ですよね?で、実装しようとしたんですが、無理.... Read more


GAEのSDK 1.4.2リリース文

2月 11th, 2011 by

GoogleAppEnigneの新しいバージョンのSDKが公開された。正式版のリリース文はまだ公開されていないようだが、プレリリース版のリリース文があったので簡単に翻訳してみた。使ったことがない機能は.... Read more


Twitterクライアントを改良

2月 9th, 2011 by

今日は、昨日作成したTwitterクライアントを改良しました。

まず最初におさらいですが、今作成しているTwitterクライアントは、GoogleAppEngine/Python環境で動作しています。OAuthでの認証を実現しており、興味をもたれた方は、自由に使っていただいて問題ありません。また、欲しい機能などがありましたら、意見頂けると中の人が喜びます。コメント大歓迎です!(自動公開にならないかもしれませんが、見つけ次第、公開します)

改良点は以下の通り

  • デザインを調整
    スタイルシートをつけてみました。
  • 空文字列の送信を防止
    何も入力していない状態での送信をJavaScriptで防止しました。
  • URLのリンク
    TL内のURLに自動リンクするようにしました。
  • @ユーザIDのリンク
    @の後ろに英数字が続く場合は、そのユーザにリンクするようにしました。
  • BadValueエラーの処理
    同一メッセージを2回連続で発言した際に発生していたBadValueエラーを隠しました。

スクリーンショット

スクリーンショットです。このスクリーンショットに映っているユーザは全員公開モードになっていたので、内容は伏せていません。

Nisetweet

Nisetweet

ソースコード

簡易Twitterクライアント作ってみた。GAE/Python

2月 7th, 2011 by

昨夜、OAuthでの認証がうまくいったので、今日はTwitterのTLの取得と発言を実装してみた。 お試し環境 → http://nisetwitter.appspot.com/で公開している。 エラ.... Read more


GAE/PythonでOAuth

2月 6th, 2011 by

GoogleAppEngine / Python環境で、TwitterのOAuthを使ってみた。


本日の実装予定

2月 6th, 2011 by

OAuth関連の実装を行う予定です。 最近のWebサービスは、OAuthを使って認証するものが増えています。OAuthを使うと、サービス提供者に必要以上のデータを渡さずにログイン認証できます。また、ユ.... Read more


CSV2Tableパワーアップ

2月 5th, 2011 by

今日は、CSV2Tableをパワーアップの改良作業を行いました。追加した機能は以下の通りです。 ラベル位置選択 1行目、1列目、1行目+1列目、ラベルなし、の4通りから選択できるようになりました。 .... Read more


CSV2Table

2月 3rd, 2011 by

CSV(TSV)から、HTMLテーブルに変換するサービスを作りました。デザイン調整などまだできていないので、かっこ悪いのですが、動作自体は安定していると思います。お約束のソースコードは記事の末尾に添付してます。

サービスの使い方

一番上のテキストエリアに、CSV(カンマ区切りデータ)もしくは、TSV(タブ区切りデータ)を入力して変換ボタンをクリックしてください。HTMLテーブルのプレビューと、そのソースコードが表示されます。CSVなのか、TSVなのかは、自動判別されます。

スクリーンショット

以下の画像をクリックすると、サービスのURLにジャンプします。

csv2table

csv2table

ソースコード

URL短縮サービスを改良

2月 3rd, 2011 by

URL短縮サービスをバージョンアップしました。新しいサービスはhttp://b.php5.jpでご利用いただけます。古いバージョンで作成していただいた短縮URLもあると思いますので、今までのサービスは.... Read more


掲示板

2月 1st, 2011 by

掲示板をつくってみた。

管理者側で入力した内容が、5秒ごとにユーザ画面に転送されます。

さすがに、メタリフレッシュはかっこ悪いので、AJAXなどで書き換えるように変更しないとなー。

掲示板

掲示板

ソースコード

ソースコードは以下の通り。

データストアのページを追加

2月 1st, 2011 by

データストアのページを追加しました。RDBなら簡単にできる操作も、GAE上のDataStoreだと実現が難しい場合もあります。GAEの性能を100%生かすためには、RDB上での考え方をいったん忘れ、G.... Read more


URL短縮君をさらに改良

1月 30th, 2011 by

URL短縮君にログイン機能を実装しました。ログインして短縮URLを作成すると、あとで、どんな短縮URLを作成したか確認できます。また、短縮URLごとの、クリック数も確認できます。 .... Read more


URL短縮君を改良しました

1月 29th, 2011 by

URL短縮君を改良しました。 改良点は以下の通り。 URL入力画面に、説明を追加 URL入力画面に、確認ボタンを設置 URL入力画面に、生成したURLの総数を表示 短縮URL取得画面に、確認ボタンを.... Read more


GAE用のGoogleアカウント2つ目確保

1月 29th, 2011 by

GAEのアプリケーションは、1つのGoogleアカウントで、10個までのアプリケーションを公開できます。運用していないアカウントも含めると、既に10個使い切ってしまったので、2つ目のGoogleアカウ.... Read more


URL短縮サービス作りました

1月 29th, 2011 by

以前作成していたURL短縮サービスを、大幅改造しました。改良したのは以下の3点です。

  • 独自ドメインの設定
    ドメインが[APPLICATION_NAME].appspot.comでは短縮後のURLが長すぎるので、独自ドメインを設定しました。
  • 例外処理の追加
    正しいURLが入力されていない場合にサーバの投げる例外ではなく、適切なメッセージを表示するようにしました。
  • デザインの適用
    簡単なデザインをつけました。前回と比べればはるかに使いやすくなったはずです。

スクリーンショット

こんな感じになりました。スクリーンショットをクリックすると、サービスのURLに移動します。

GAE/Pythonで作るメリット

GAEで運用すれば、サーバのメンテナンスをしなくて良い。個人で提供するサービスで、正直、サーバの面倒までみている暇はありません。またPythonを使うと、メンテナンス性の高い短いソースコードでサービスを開発できます。大規模プロジェクトであれば、きっちり設計して、Javaなどのコンパイル言語をつかったほうが高速で安定したサービスを開発できるとは思いますが、個人でサービスを作成するなら、開発効率の高いPythonが楽だとおもいます。

ソースコード

いつものお約束。ソースコード全文公開です。今回は、メインのpyファイルのほかに、yamlファイルとCSSファイルも掲載します。メインのプログラムは、デザイン部分やらGoogleAnalyticsのロギングコードまで含めて90行を切っています。短いです。

GAE/Python デプロイできない。

1月 28th, 2011 by

GAE/Pythonのデプロイに非常に長い時間がかかりました。サーバが混雑しているのかもしれません。 ::CODECOLORER_BLOCK_8:: .... Read more


  • Python

  • 人気記事

      このエントリーは、Python入門者と、Python入門予備軍の方を対象としています。 どうしてPythonやるの? Pythonって覚えやすい言語なんです。といっても、それなりに使いこなせるようにな.... Read more

      リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです。ループ、Map、Filterなどを使っても同じ操作をできますが、リスト内包表記には以下の利点があります。 コードがシンプ.... Read more

      Pythonには固有の文字列フォーマット(モジュロ)操作が用意されている。文字列中の%?であらわされる部分が、文字列の後ろに与えられた変数で置換される。 単一値の置換 単一の変数を置換する場合は、文字.... Read more

      Pythonの世界は、整数などの単純な値も含め、すべての値はobjectクラスを継承したクラスのインスタンスでできています。 ::CODECOLORER_BLOCK_52:: classを定義する も.... Read more

      だまって↓インストールすれば、Facebookのコメントプラグインがすべての投稿とページにつくよ。動かなかったらごめん。 wp-facebook-comment .... Read more

      リスト(List)とはPythonの組み込み型の1つで、シーケンス(sequence)の一種です。他の言語におけるインデックス配列に似ていますが、かなり柔軟な操作ができます。このページではリストをつか.... Read more

      プログラム内でループを使うのは以下の3パターン。C言語などになれていると1番や2番を使いたくなるかもしれないが、Pythonでは3番が適してるケースが多い。 N回ループ一番基本的なタイプ 条件を満た.... Read more

      Pythonでは、print文を使わないと日本語を正しく出力されない。print文を使うと、あらかじめ設定されているエンコードにしたがって適切に出力される。 ::CODECOLORER_BLOCK_9.... Read more

      DataStoreとは 本記事内のDataStoreは、GoogleAppEngineのデータストアのことを指す。GoogleAppEngineは、ファイルの書き込みが一切できないため、DataSto.... Read more

      みなさん、Google App Engineって聞いたことありますか? あっ、それしってる。Google Docsとかでしょ?って思った方。惜しいけど違います。 Google App Engineとは.... Read more

      GoogleAppEngineでは、世界標準時で時刻を管理する。でも、そのまま表示すると分かりにくい。このページでは世界標準時を日本時間に変換したり、日本時間を世界標準時に変換する方法を紹介する。 現.... Read more

      Pythonの条件分岐は、if, else, elifの3つの構成要素から成ります。条件成立時、非成立時の実行範囲は、インデント(indent)であらわします。条件部 If elseから成る条件分岐 .... Read more

      Pythonの文法構造には、単行のコメントアウトしかありません。 複数行のコメントアウトが必要な場合は、コメントを文字列にします。 単行コメントアウト #以降がコメントとして扱われます。 ::CODE.... Read more

      GAE/Pythonで、一体いつになったらPython3系が使えるようになるのか。興味深いページがあったのでざっくり翻訳してみました。 http://code.google.com/p/googlea.... Read more

      日経ソフトウェア 2010年4月号特別付録の問題をPythonでといてみた。 Amazon.co.jp ウィジェット 問題1: 「3の倍数と3のつく数字だけ・・・」 1から100までの整数を1行に.... Read more

      タプルとは、シーケンス型のオブジェクトです。同じくシーケンス型のオブジェクトとの違いは、不変であるということです。リストは生成後に要素を追加したり削除したりできますが、タプルは生成後に内容を修正できま.... Read more

      昨夜、OAuthでの認証がうまくいったので、今日はTwitterのTLの取得と発言を実装してみた。 お試し環境 → http://nisetwitter.appspot.com/で公開している。 エラ.... Read more

      GAE/Pythonで最初に戸惑うのはRequestHandlerだと思います。新規アプリケーション作成時に自動生成されるので必要に応じて書き換えることができれば問題ありません。 RequestHan.... Read more

      Pythonには基本的な型として、数値、bool、文字列があります。type() を使うと変数の型を確認できます。 数値 数値を表す型には、整数型 、 長整数型 、浮動小数点型 、複素数型の4つがあり.... Read more

      この10日間ほど、地震のニュースばかり追いかける日々をすごしていないでしょうか?大勢の方が被災され、原発関連の二次災害も発生する中で落ち着きづらいというのも事実なのですが、心配しすぎてもしかたない。そ.... Read more

      文字列は文字の列(シーケンス)のこと。文字列リテラルの表記方法は、以下の4つがある。 シングルクオーテーション1個‘string comes here’ ダブルクオーテーショ.... Read more

      モジュールとはPythonの定義や文が入ったファイルです。 標準モジュールや第3者によって公開されているモジュールを組み合わせることで、容易に高度な処理を実現できます。また、自作のモジュールを作ること.... Read more

      なんと、int型が64bitまで使えるんです。当たり前だけどうれしいです。 ::CODECOLORER_BLOCK_158:: windowsだと64bitCPU使っていてもこんな感じになります。In.... Read more

      GoogleAppEngineでPythonを使う場合は、特別な理由がない限り、バージョン2.5を使いましょう。2.5以外の環境で開発すると、開発環境では動作していたアプリケーションが、GAEでは動作.... Read more

      実行速度(改)で、最適化をし尽くしたつもりが、早速 mohayonao@hatena さんから、改善案をいただきました。rangeではなく、xrangeを使うとより高速化するとのこと。早速書き換えてみ.... Read more

  • タグ

  • Archives

  • Recent Comments

    • ブログロール


    Get Adobe Flash player