Google App Engineを試用

仕事でPythonを使いそうであるということと、Google App Engineのドキュメントが日本語化(Google Code)されたという話を耳にして、良い機会なのでお勉強を始めました。

スタートガイドで基礎のお勉強

http://code.google.com/intl/ja/appengine/docs/gettingstarted/を順番にこなしゃ、自分のサイトを作れます。
簡単。
とりあ、自分のホストはゲットしますた。(http://idios.appspot.com/)

なぜかJython本を片手にPythonの基礎のお勉強

Javaオブジェクト指向の認識で固められている脳ではPythonのゆるさを理解できず。
Pythonオブジェクト指向は置いておいて、とりあえず動く物を作る。
参考書籍はなんか勢いで買っちゃった、Jython本。Python自体が網羅的に書かれてるわけじゃないけど、今の俺には十分な内容。

Jythonプログラミング

Jythonプログラミング

仕事で個人的に活用させてもらおうと思っている一冊。

日本語で苦労

日本語をコードに含めるとエラー吐くわ、文字化けするわでちょいと苦労。
Pythonでの日本語対策は以下のことやってりゃいいんじゃないかな。

  • ファイルはUTF-8で保存
  • コードの先頭行にお決まり文句を付加
# -*- coding:utf-8 -*-
  • 出力(print)前に標準出力の設定
import sys
import codecs
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
    • この行が実行された後はずっとUTF-8で出力される。
  • 文字列変数をu文字列に定義
var = u"日本語"
    • 「u」付けるだけ。
  • コンテンツタイプの設定
print 'Content-Type: text/html;charset=UTF-8'
    • Webアプリケーションはこう書いとかないとエンコードとかMIMEタイプの判別をうまくやってくんない。
    • HTTPヘッダのコンテンツタイプが一番優先されるっぽ。

2008/11/16時点のアップ物

こんなかんじ。

# -*- coding:utf-8 -*-

def outputHtml(values):
	print 'Content-Type: text/html;charset=UTF-8'
	print ''
	templateString = ur'<html><head><title>$title</title></head><body>$contents<div><a href="http://d.hatena.ne.jp/Idios/">暇殺シ</a></div></body></html>'
	import string
	templateString = string.replace(templateString, ur"$title", values["title"])
	templateString = string.replace(templateString, ur"$contents", values["contents"])
	print templateString

#標準出力のエンコードをUTF-8に設定
import sys
import codecs
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)

#テンプレートへ入力
values = {}
values[ur"title"] = ur"running Sampe Template Engine"
values[ur"contents"] = ur"Hello, World"
outputHtml(values)