データストア関連記事のまとめ その1

最近、Googleのサイトに上がっているMastering the datastoreの一連の記事を読みました。今まで、わりと適当にGoogle App Engine のデータストアを扱っており、いくら趣味プログラミングとはいえ、ある程度は内部処理についての知識がないと突っ込んだことは…

Google App Engine で 1.0以上のバージョンのDjangoを使う

先週に投稿したエントリで、Google App EngineではDjango0.96しか使えないようなことを書いたのですが、ちゃんと調べてみると、現在のGoogle App EngineではDjangoの1.1および1.0.2のバージョンも使用できることがわかりました。英語のドキュメントにしか載…

DjangoのTemplateにて辞書の内容を一覧表示する

DjangoのTemplateでは、{% for a in list %}...{% endfor %}を使うことで、リストの内容を順番に処理していくことができます。 それと同じように、ディクショナリに登録されている内容を順番に表示させようと考えたのですが、 Google App Engine のDjangoの…

app-engine-patchの開発って、止まってないのかな?

久々にプロジェクトのサイトを見てみると、8月にリリースされたあとは、新しいバージョンが出ていないようだ。 プロジェクトの続行を心配する書き込みもサイトにあったようで、せっかくの良いプロジェクトなのにと少し心配になった。

あけましておめでとうございます

どんだけ放置してるんだと自分でも気になっているんですが、実際ほとんどサンデープログラマー活動を進められなかったという。なんというか、不況のあおりなのか何なのか、全体的に受注とか単価とかがモリモリ下がり気味で無駄に忙しくなっていますが、同業…

タスク名の編集機能を実装する

前回で、タスクの追加、開始と停止、削除は実装しました。そこで今回は、タスク名の編集機能をつけようと思います。大まかな仕様としては、表示されているタスク名をクリックするとテキストボックスに変わり、そのテキストボックスに新しいタスク名を入力し…

いろいろな仕事に使った時間を記録するページを作る

調査が終わったところで、なんかちょっと作ってみようと思います。というところで、最初に思いついたのが「各仕事の作業時間を記録する」ページです。私は、普段の仕事では、『あっちを少しやって、そのあとこっちも少しやって、また別件のメールを書いて、…

GWTで共通処理を使いまわす方法

表題の件について結構悩んだので、自分の中のまとめの意味を込めて記録を残しておきます。まず、ひとつのモジュールを単純に別のページで使いまわすには、そのモジュールがコンパイルされたjsファイルをscriptタグで取り込むだけで大丈夫です。たとえば、ロ…

Google App Engine for Javaにも手を出してみる

気がつけば、もう4ヶ月も放置してしまっていた。仕事上でいろいろ忙しかったりすると、こういうサンデープログラマ的活動は止まってしまうという。で、ちょっと気分を変えて、Google App Engine for Javaにも手を出してみることにしました。ただ、それだけ…

TODOタスクの状態表示と状態変更機能

前回で、TODOタスクに状態を持たせることができました。今度は、その状態の表示と、状態変化のロジックを実装することにします。まず、TODOタスクの状態変化処理用のメソッドを用意します。/todo/views.py def update_task_status(request): if not request.…

既存データの一括更新

これまでTODOタスクは追加と削除だけができるものでしたが、実際にTODO管理をしようとすると、それがどういう状況なのかを記録したくなると思います。といっても、あまり複雑にするとややこしくなるので、以下の4つの状態をとれるということにします。 未着…

定期的に処理を走らせる

それでは、メールによる締切通知部分を作成しようと思います。まず、締切時にメールを送信する設定になっていて、かつ、締切を過ぎているのにまだメールを送信していないTODOタスクを抜き出します。 now = datetime.datetime.today() now += datetime.timede…

既存のモデルを拡張する

締め切りがきたらメールを送る機能を実装するにあたり、これまでのTaskモデルクラスだと情報が足りないので、締め切りをメールで通知するか/いつメールを送ったかを格納するプロパティを加えることにします。/todo/models.py class Task(db.Model): user = …

アプリケーション専用のメールアドレスからメールを送信する

あっという間に3週間ほど放置状態となってしまいました。プライベートで何か忙しくなると、とたんに滞ってしまったりするのが趣味プログラミングの辛いところだったりします。まぁ、あせらず気長に続けていこうと思います。ちょっと間があきましたが、前回…

金星翻車魚(キンボシマンボウ)のデザインを変更してみました

あまりにも殺風景だったので、ちょっとデザインをいじってみました。といっても、ちゃんとWebデザインできるスキルは持ち合わせていないので、ちょっとましになったか程度ですけれど。金星翻車魚(キンボシマンボウ)

汎用ビューによる更新・削除ページ

前回で、TODOタスクの追加と一覧までは実現できたので、今回からは編集と削除処理を作っていきます。削除処理については、汎用ビューのdjango.views.generic.create_update.delete_objectを使います。利用手順としては、まず、views.pyに削除処理用のメソッ…

Django Applicationを作る

ちょっと意味のあるアプリケーションとして、TODO管理機能を作っていくことにします。Djangoと同じく、以下のコマンドでアプリケーションが生成されます。 manage.py startapp todoこれによりtodoフォルダができますので、中身を確認すると、以下のファイル…

ログイン認証に対応する

app-engine-patchを導入すると、ユーザアカウントの管理方法として、以下の3つが選択できるようになります。 Googleアカウントを利用する 独自のアカウント管理を利用する Googleアカウントと独自のアカウント管理を併用する 今のところ、Googleアカウント…

アクセスカウンタの復活とtemplateの継承

app-engine-patchにおいてもModelはGoogleのモデルを使うようなので、前のアクセスカウンタ用のモデルをそのまま流用します。前回からの変更点として、views.pyを新たに生成し、カウンタアップのロジックをここに移動させました。views.py # -*- coding: utf…

app-engine-patchの導入

GettingStartedと、Unleash Django with app-engine-patchの記事を見て、app-engine-patchの使い方を理解しようとするも、分ったような分からないような。やっぱり実際に試してみないとよくわかりませんね。というわけで、やってみます。まず、Downloads app…

Google App Engine上でDjangoを動かす

そろそろなんらかの動きのあるアプリケーションを作りだそうと思ったのですが、このままgoogle.appengine.ext.webappパッケージを使ってゴリゴリと書いていっていいのかとちょっと悩みました。躊躇した点は、以下。 webappパッケージを使い続けると、Google …

静的ファイルの提供

ここまで、Webブラウザに表示する画面はすべてプログラムで生成してきましたが、Webアプリケーションを作る上においては、当然のことながら、画像やcssファイル等々の静的なファイルを使う必要があります。 Google App Engineでそれらの静的コンテンツを提供…

アクセスカウンターの設置

そろそろ、ちょっと動的な要素を加えてみます。まずは、簡単なアクセスカウンターから。データストアにアクセス数保持用の簡単な領域を用意し、トップページにアクセスがあるたびにその値を更新したうえで、画面上に表示します。Google App Engineでデータを…

templateの導入

このままPythonのファイルにつらつらとHTMLを書き続けるのも問題なので、PythonのコードとHTMLとを分離します。Google App Engineでは、Django(Python製の著名なWebフレームワークのひとつ)のtemplateライブラリが設定の必要なく使えるようなので、これを…

トップページを用意してみた

Getting Started: Pythonを一通り読んでみました。読んだだけでは分かったような分からなかったような、そんな感じです。まぁ、とりあえず、トップページを作ってみましょう。開発に際しては、Google App Engine SDKのダウンロードをお忘れなく。まず、アプ…

まずはGoogle App Engineの利用準備

Google App Engineのアカウント登録時に携帯のメールアドレスを要求されます。携帯のメールアドレスを知らせると、そのメールアドレス宛に「Google App Engine Code」なる番号が届くので、それを入力すると、Google App Engineが利用できるようになります。…