ラベル Google App Engine の投稿を表示しています。 すべての投稿を表示
ラベル Google App Engine の投稿を表示しています。 すべての投稿を表示

2009年6月17日水曜日

[ GAE ] GAEのテンプレート機能をテンプレートファイル無しで使う方法

GAEのテンプレート機能を、テンプレートファイル無しで使う方法。

普通はこんな感じ。
from google.appengine.ext.webapp import template
# -- 省略 --

tmp_val = {
'my_name' : 'Yumitsuka Sakito',
'my_site' : 'http://www.ehaco.net'
}
path = os.path.join(os.path.dirname(__file__), 'tmp/template.html')
self.response.out.write(template.render(path, tmp_val))


Pythonには辞書型配列という機能があって、「 名前 : 内容 」形式で宣言します。
まあ詳しくは他のサイトを見てください。

これをテンプレートに送り込めば、自動的に名前を探して画面に取り込んでくれます。

ただ、このtemplate.render()関数、ファイルパスを指定するので、ファイルしか使えません。
文字列をテンプレートに使用したい場合は、以下のようにします。

from django.template import Context, Template

# -- 省略 --

tmp_val = {
'my_name' : 'Yumitsuka Sakito',
'my_site' : 'http://www.ehaco.net'
}
t = Template('Hello. My name is {{ my_name }}. My site is {{ my_site }}!!')
self.response.out.write( t.render( Context(tmp_val) ) )



…別に変なことはしていません。
Djangoのクラスをインポートして使っているだけです。

つまり、その他にも使えるものがありそうだ、ということ。
色々使いこなす余地が出てきますね。

2008年12月24日水曜日

[GAE] PILをjpegとzlibオプション付きでコンパイルする方法。(VC++ 2008 Express版)

VC2005でも使えるかも。

Python系って、今配布されている2008とかだとコンパイルしてくれない。
Visual Studio 2003じゃないと許せないから2003使ってね、みたいなメッセージが出る。…なんて心が狭(ry


で、無理やりコンパイルする方法があったので備忘録。2003は無料じゃ手に入らないし。

こちらの記事で、コンパイル環境を作ります。まぁインストールですが。
[nmake.exe&cl.exe]無料で作るコマンドラインからのコンパイル環境(Visual Studio Express 2008版)


で、3つのファイルをダウンロードしてきます。
下のリンクはそれぞれ今(2008年12月)の最新版です。

1.PIL本体
Python Imaging Libraryから、PIL最新版の「Source Kit」をダウンロードします。
1.1.6(クリックでダウンロード)です。

2.Jpeg Lib(Jpegサポート用)
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz(クリックでダウンロード)

3.zlib(PNGサポート用)
http://www.zlib.net/zlib-1.2.3.tar.gz(クリックでダウンロード)


ダウンロードしたら、全部解凍します。
それぞれフォルダが作成されますので、JpegとzlibのフォルダをどちらもImagingのフォルダに放り込みます。

+Imaging-1.1.6
 -jpeg-6b
 -zlib-1.2.3


こんな感覚です。

次に、setup.pyがはじいてしまうVC++2008を環境設定とレジストリで回避します。
てかそんなフラグ見てるんだ。

環境変数の設定。
下の変数を作って、どちらも「1」を設定します。
DISTUTILS_USE_SDK
MSSDK


次にレジストリエディタ。
「ファイル名を指定して実行」で「regedit」
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
をたどり、「新規」→「文字列値」で、
sdkInstallRootv1.1
を作っておきます。値は入力しなくてOKです。


さて、コンパイルします。


Imaging-1.1.6の中にある設定を下のように変更します。
JPEG_ROOT = 'jpeg-6b'
ZLIB_ROOT = 'zlib-1.2.3'

最初はどちらもNoneになってるはず。

カレントフォルダをJpeg-6bにします。
で、「jconfig.vc」ファイルのファイル名を「jconfig.h」に変更してから、以下のコマンドでコンパイル。
nmake -f makefile.vc


だーっとログが流れます。警告も多いですがFatal Errorってのが出なければOKです。



次。カレントフォルダをzlib-1.2.3にします。
以下のコマンドでコンパイル。
nmake -f win32\Makefile.msc


Jpegほどじゃないですがログが流れますので終わるのを待ちましょう。



最後。Imaging Library。
カレントフォルダをImaging-1.1.6にします。
以下のコマンドでコンパイル。
python setup.py build


ログの最後の方に、こんなメッセージが出てればOK。



最後に、
python selftest.py

この処理を実行して、
57 tests passed.

と表示されれば完了です。


出典
http://d.hatena.ne.jp/moriyoshi/20070518/1179490110
http://www.freia.jp/taka/blog/392

2008年12月22日月曜日

[GAE] PILはJPEG対応がなんか変。

これは別にGAE(Google App Engine)だけの話じゃないみたいなんですけど。

GAEでimages APIを利用する場合、PIL(Python Imaging Library)っていう外部ライブラリをインストールする必要があります。

ここ参照。
http://code.google.com/intl/ja/appengine/docs/images/installingPIL.html


まあ、PILはコンパイル済バイナリ(プログラム形式)で配布されているので、インストールすればちゃんと動…



動かないし。



そのままだとJPEGファイルがうまく扱えないらしいです。
ていうか標準ではサポートしないらしい。えー。


ちなみにJPEG対応オプション付きでソースからコンパイルすると読めるらしいです。

こことか。
http://www.freia.jp/taka/blog/392


てか、たまに読み込めるからハマりかけた。


…Pythonのくせにばかー。(ぁ