カテゴリー: Genshi

Home / カテゴリー: Genshi

web2py

2010-06-24 | Genshi, Python | コメントはまだありません

http://www.web2py.com/
WSGI準拠のフレームワークだって。
Windows版は落っことしてきて起動したら、そのままもうページ丸々出来てた。
なんだこれすごいな。教育用に作られたそうですが、GAE対応とかいけてるポイントがわんさかあるぽ。例によって日本語の情報がないのがなんですが、訳しながらいじってみる予定。
資料の量はさらに減るけどGenshiともちゃんとくっつく(そりゃWSGIなんだからそうだわな)みたい。
web.pyの新しいのかなんかなんだと思ってたらまったくの別物でした。

エラー画面

2010-02-26 | Genshi, Pylons, Python | コメントはまだありません

致命的な例外とかエラーとかで処理が中断されたときに、エラー画面へ遷移しますよね。
で、Pylonsだとこのエラー画面(?)でのスタックトレース表示がすんごいらしく、そのへんずいぶん期待していたわけです。

結果、どんなインタラクティブでハイパーハッピーな開発生活に邁進できているかというと、
できていないんだこれが。
apacheに吐き出されるログ(スタックトレースも当然ある)を毎度眺めながらため息をついているわけです。makoだけの機能なのかしら。
Genshiは設定にもよりますがxml/xhtmlできちんと書かれていないと即エラー行きなんで、タグの閉じ忘れなんぞした日には即エラー。
なんかあのすんごい画面([Pylons]Pylonsのトレースバックは凄い!)はどうしたらいいの。いきなりGenshi選んだあたしが馬鹿なの;;

logger周りに関しても、どうもあたしは何か決定的な知識の欠如があるみたいで、ドキュメントを眺めても手の付け所が分からない。
まいった。いやまいってる。
Pylons+Genshiで探すと、日本語環境でブログの記事で何か残していて云々、っていうのがうちくらいしか見当たらない。英語当たるしかないよねー。手を止めてその時間を確保するのか、えいやで進めちゃうのか、いまだになやみながらエイヤエイヤとプログラム書いてます。

ついき:
んー?
Pylonsでmod_wsgiを使ったときにLoggingが働かないこれかな?

Pylons+Genshi+FillingParser

2010-02-05 | FormEncode, Genshi, Pylons | コメントはまだありません

Fillできたー!

以下、自分だけわかればいい的なぐりがき。
下記のソースで、当該ページのフォームにname=”wa”とでもしておけば、そこにwawawaと出るわけでござる。

#ちょとかきなおした。
コントローラに

        defaults={'wa':"wawawa"}
        return render('base.html', defaults= defaults)

こっちはbase.pyあたりでいいかも。render_genshiをwrapするふりして一部書き換えてるだけ。
dist-packagesの中を書き換えるのはかなりアレなので、アプリの中で書いています。

#Wrap render_genshi
def render_genshi(template_name, extra_vars=None, cache_key=None,
                  cache_type=None, cache_expire=None, method='xhtml',defaults=None):
    """Render a template with Genshi

    Accepts the cache options ``cache_key``, ``cache_type``, and
    ``cache_expire`` in addition to method which are passed to Genshi's
    render function.

    """
    # Create a render callable for the cache function
    def render_template():
        # Pull in extra vars if needed
        globs = extra_vars or {}

        # Second, get the globals
        globs.update(pylons_globals())

        # Grab a template reference
        template = globs['app_globals'].genshi_loader.load(template_name)

        #parserがある場合はFillする
        if parser == None:
            return literal(template.generate(**globs).render(method=method,
                                                             encoding=None))
        else:
            parser = FillingParser(defaults)
            src = literal(template.generate(**globs).render(method=method,
                                                             encoding=None))

            parser.feed(src)
            parser.close()
            return parser.text()
#        ここは元のコード
#        return literal(template.generate(**globs).render(method=method,
#                                                         encoding=None))

    return cached_template(template_name, render_template, cache_key=cache_key,
                           cache_type=cache_type, cache_expire=cache_expire,
                           ns_options=('method'), method=method)

Pylons+Genshi+FormEncode(?)でフォームに値をFillしたい。

2010-02-05 | FormEncode, Genshi | コメントはまだありません

http://snipplr.com/view/10049/full-formencode–htmlfill-example-with-form-and-test-values/

この分かりやすい例は、完全に働くFormEncode(v1.2)の例をテストして、見せびらかします。 私が、例を見つけるのに苦労したので、現在、それを差し上げます。

のようなことがかいてある。これか?
というかValidatorつかってFillすんのかー?
もはや値をfillできるならどんな手段だってかまわぬ。正しい方法が見つかったら、そこで直せばいいのだし。

追記:
これ普通のバリデーションだった。さっくりrender周辺でfillするにはどうしたらいいのだ。

情報が見つからない。

2010-02-05 | FormEncode, Genshi | コメントはまだありません

FormEncodeのFillerについて調べようとしたら、

おねーさんブログが引っかかりました。つまりこれ。
おいwwwwwwwwwwwwwwwwwwwwここ参考にならないことしか書いてないwwwwww
調べものがすすまないよう。