軽量フレームワークJunoを使ってみた

http://brianreily.com/project/juno/

かるーく使ってみた。
駆け足でハローワールドまで紹介。

Junoをインストール

easy_install juno

jinja2入れてない人は別でインストールする必要があるかも

書く。

WSGIアプリケーションとして動かしてみる。
今回はjunotest.pyとして/var/www/junotestに置きました。

from juno import *

@route("/")
def hello_world(web):
    return "it worked!"

config("mode", "wsgi")
application = run()

Apache設定

(半分自分の備忘用)
ApacheWSGIを動かすための設定

<VirtualHost *:80>

        ServerName junotest
        WSGIScriptAlias / /var/www/junotest/junotest.py

</VirtualHost>

おわり

これでhttp://junotest/にアクセスするともう動きます。*1

もうちょっと機能をつかう

ビュー関数の部分のみ書きます。
junoのインポートとかは当然必要なので↑を参考に。

パラメータを取る+テンプレートを使う

URLマッピングを書くときに:なんちゃらと書くとその名前でビューの引数に渡してくれる。

@route("/param/:name")
def your_name(web, name):
    #デフォルトのテンプレート検索パスはこのスクリプトがある場所のtemplatesフォルダ以下。
    #今回の場合は/var/www/junotest/templates
    return template("index.html", {"name": name})

テンプレートエンジンはデフォルトだとjinja2なのかな?

arg = {{ name }}

http://junotest/param/yoanにアクセスすれば

arg = yoan

になる感じ。

モデルを使う

ごめんなさいうまくいきませんでした。
とりあえずドキュメントを見た限りでは

Man = model("Man", name="string")
man = Man(name="hoge")
man.save()

Man.find().all()

みたいにしてモデルを定義、利用するとのこと。

使い道

  1. URLをいっぱい切らない
  2. 1つの処理が100行を超えない

程度のごくごく小さいアプリならdjangoより早く作れる。
書き捨てのWebアプリをちょろっと書きたいというときに便利かもしれない。

けど…

djangoで…いいかな…

メモ

web.pyも見ておく

*1:もちろんDNS設定はよしなに。