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

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年10月21日火曜日

Windows環境にPython&DjangoフレームワークのCGI環境を作成する

えーと。私がやりたかったので。

Django(ジャンゴ)は強力なテンプレート機能を持つWebシステムフレームワークです。

なんだか調べてみたらDjangoには簡単なWebサーバ機能が付いているらしいので、どうやらPythonとDjangoだけ入れれば開発環境が作れそうです。


まずPythonを入れます。インストール済みなら飛ばしてください。

Pythonのインストール

まずPythonユーザ会のサイトへ行って、Pythonをダウンロードします。
http://www.python.jp/

画面左側のダウンロードページから、「Python標準リリース」を選択します。

今回はWindows用インストーラの「python-2.5.2.msi」をダウンロードしました。
最新版が出ていたら、そっちにしてくださいね。

ダウンロードしたmsiをダブルクリックして起動すると、インストーラが起動します。
とりあえず「Yes」連発してインストールしてください。

これでCドライブの直下にPythonがインストールされます。

次に、Djangoをインストールします。

Djangoのインストール

こちらがDjangoのダウンロードページです。
http://www.djangoproject.com/download/

「Get the latest official version」にあるダウンロードリンクからダウンロードします。
私の場合はバージョン1.0でした。

「Django-1.0.tar.gz.gz」というファイルが作成されたので、解凍します。
あ、これtar.gzをもう一回圧縮してるみたいですね。2回解凍が必要かもしれません。

思ったより解凍時間がかかって、「Django-1.0」というフォルダができます。
こいつの中を見ると、「setup.py」というファイルがあります。

コマンドプロンプトで解凍されたフォルダをたどり、
python setup.py
でセットアップを実行します。

んだーーーーーっとログが流れるのでしばらく静観。

完了すると、Pythonのインストールフォルダ内にDjangoがインストールされます。

実行してみる

Ruby on Railsと同じくDjangoも、コマンドでサイトの雛形を自動で生成する仕組みのようです。

ということで。

コマンドプロンプトでプロジェクトを作りたいフォルダに移動して、私の場合、
python C:\Python25\Scripts\django-admin.py startproject mysite
を実行しました。

これはPythonフォルダにインストールされた「django-admin.py」というスクリプトを使って、startproject(プロジェクト生成)コマンドを実行しています。

ちなみにmysiteというのはプロジェクトの名前です。お好きな名前を設定してください。
あ、ただしPythonとかDjangoのクラス名をプロジェクト名に使うと面倒なのでやめてくださいとかどっかに書いてありました。

startprojectコマンドは一瞬で完了します。
プロジェクトフォルダをエクスプローラで開くと、
  • __init__.py
  • manage.py
  • settings.py
  • urls.py

という4つのファイルが生成されています。これで準備は完了です。

サイトを実行してみる

早速実行してみましょう。
プロジェクトフォルダをカレントフォルダにして、
D:\django1\mysite>python manage.py runserver
と入力して実行します。
Validating models...
0 errors found

Django version 1.0-final-SVN-unknown, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
と出れば成功です。running at http://127.0.0.1:8000/と書かれているので、ブラウザを立ち上げてから、アドレスバーに、
http://localhost:8000/

と入力して実行してみてください。
It worked!
Congratulations on your first Django-powered page.
と祝福してもらえたら、成功です。ふー。


これで無事Python+Djangoフレームワークの環境が動作しています。
思ったよりサクッといきますねぇ。

もちろんリファレンスにもある通り、この環境はあくまで開発環境です。
PHPやPerlで言うXAMPPとおんなじ感覚と思ってください。

リファレンスにも、絶対に本番運用には使用しないで下さい!と書いてありました。
セキュリティとか色々面倒なんでしょうね。

とはいえ実際に運用する前に手軽に環境を構築できますし、しかも実際の運用環境と併用できるので、かなり便利です。

次回からは、この環境上でDjangoを利用した簡単なサイトの構築を行なってみます。