2011年12月30日金曜日

今年も終わり

今月終盤は仕事が忙しくなり、GAEの方は一旦停止中です。

来年はFXの報告などもしていきたいです。
それにしても今年は3.11でひどい目にあったなぁ。。<自業自得

2011年12月20日火曜日

テンプレートの継承

GAEのPythonでもテンプレートの継承ができます。
ASP.NETのマスターページみたいな感じです。

親テンプレート例
<html>
<body>
Content1<br />
{% block content1 %}{% endblock content1 %}<br />
<br />
Content2<br />
{% block content2 %}{% endblock content2 %}<br />
</body>
</html>


子テンプレート例
{% extends "base.tpl" %}
{% block content1 %}
content1: {{my_content1}}
{% endblock content1%}
{% block content2 %}
content2: {{my_content2}}
{% endblock content2%}


マスターページではマスターページで処理するコードも書けるのですが、
Pythonだと単なるテンプレートなので無理そう。
と、調べてみたところテンプレートタグやフィルタを作成してロードすれば
よいらしい。

Django v1.0 documentation
テンプレートタグやフィルタを自作する
http://djangoproject.jp/doc/ja/1.0/howto/custom-template-tags.html

ASP.NETと比べたらちょっと面倒。
というか、VisualStudioはインストールするだけでほぼ環境が揃って
開発の手間がかからないという点では本当に素晴らしいと思う。
ただ、動かすのにWindowsが必要なので、安価にネット上で構築するには
不向き。社内システムなんかだといいんだろうけど。

Python コード内の文字列で2バイト文字のとき

Paythonのコード内で、例えば変数に日本語を入れたときにエラーが出るときが
あります。
ググったところ、Python独特の事情とかなにやら難しいことが色々出てきました
が、、、とりあえず以下のコードを一番上に記述するとエラーが出なくなりました。

# coding: utf-8


とりあえず動けばいいので、これでよしと。。
おまじない的に入れておく。

GIMPについてメモ

Web用画像とかは苦手で仕事ではデザイナーさん任せなのですが、
個人サイトは自力でやるしかない。
ということで、GIMPを試してみようかと。
Photoshopとか買えないし。。。

GIMP始めの一歩
http://gimphajime.web.fc2.com/

このサイトが分かりやすそうでした。
とりあえずボタンでもつくってみようかな。

2011年12月15日木曜日

認証のサンプル&コード掲載のテスト

コードの掲載テストを兼ねての認証のサンプルコードです。
webappフレームワークを使ってます。

テンプレートのHTML
<html>
<body>
<h1>Hello, {{first_name}}!</h1>
</body>
</html>


Pythonコード部分
import os
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp.util import login_required
from google.appengine.api import users

class MyPage(webapp.RequestHandler):
@login_required
def get(self):
template_values = {
#'first_name': 'Keisuke'
'first_name': users.GetCurrentUser().nickname()
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))

application = webapp.WSGIApplication([('/', MyPage)], debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()


Google App Engineでの認証

Google App Engine + Pythonでの開発をはじめました。
昨日はデータストア関係をいろいろ調査して、基本的なことは
できるようになった。その辺は割愛。

で、次に認証関係を調査。
Googleアカウント認証が簡単に実装できるようです。
以下をdef get(self):の前に追加。

@login_required


これでGoogleアカウントにログインしてない場合、ログイン画面に
勝手にいきます。
ニックネームなどを取得する場合は以下のような感じで。

users.GetCurrentUser().nickname()


シンプルなサイトならこれで十分かも。

開始してみた

とりあえず開始してみた。
テスト。