Python
classを元にしたアプローチは、フォームに値を設定するのが面倒なことに気付いた。 さてどうしようか。 formは特別扱いでもいいかな。 ... <form name="searchForm" ...> <input type="text" name="name"/> <input type="checkbox" name="public"/> <select name="job"> <option value=""></option> </select> </form> ... template.forms["searchForm"].values = {"name":"aodag"} 問題…
どうやって取得するんだろう。 prefixとQNameは取得できるから。 localName = e.tag[len(e.prefix + ":"):] とでもやればいいのか? と、思ったらe.tagではprefixが名前空間に展開されている。 ってことは、nsmapを参照しないといけないのか。 e.tag[len("{" …
考えてみたらoptionの内容はdictよりtupleのlistの方が良いな。 dictだと順序が保持できない。 リスト内包表記で手軽に生成できるってのが、本当の理由だったりする。
名前はtypoじゃないよ http://cheeseshop.python.org/pypi/flexableflexable is template engine with simple data structure. That is made up of str, unicode, dict, tuple, list and Element.
webstringが結構よさげだったのだが、少し気になる点があった。 構造化したデータモデルをプッシュするのが少し複雑な気がする。 classが指定されているエレメント内のclassを使ってプッシュできない。 エレメントの出現順序に依存している部分がある。 もう…
webstringはマイクロフォーマットと相性がよさそうだな hatomに従っているhtmlはwebstringを経由してみると、全く違いが出てこない。
http://psilib.sourceforge.net/webstring.htmlcElementTreeとlxmlをエンジンにしているテンプレートエンジンのようなもの。 普通のテンプレートエンジンと趣が異なる。 通常はテンプレート内にタグやスクリプトレットを埋め込み、ロジック層やコントロール…
http://www.oreilly.co.jp/books/9784873112763/
まあ、entory-ponintがあるので、PasteDeployで設定しとこう [filter:deliverance] use = egg:Deliverance#main theme_uri = file://%(here)s/deliverance/theme.html rule_uri = file://%(here)s/deliverance/rule.xml とりあえずstatic-appで試そうとした…
age http://photozou.jp/photo/list/111448/333231
巫女居酒屋が混んでいて入れなかったのが残念だ
30名の参加してくださり、大盛況に 正直、東海でいったい何人集まってくれるのだろうと考えていましたが、 杞憂に終わりました。 これまで東海地区ではPythonの集まりがあまりなく、 集まった人たちのなかでも、「やっとPythonの話ができる」という人も多く…
さて前回は値をFormWidgetに設定して表示させた。 後は受け取る側の処理だ。 素の状態のWSGIアプリケーションで取得できるのは、GETのクエリ文字列やPOSTのコンテンツボディだけ。 dictになって渡ってくるわけではない。 これは、入力内容が必ずしもurlencod…
サンプルが動きませんorz File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ToscaWidgets-0.1a2dev_r2777-py2.5.egg/toscawidgets/middleware.py", line 47, in __call__ environ['paste.registry'].register(toscawid…
PasteDeployはWSGIアプリケーションの配備設定をiniファイル形式で書けるのだが、この裏ではどんな仕組みを使っているのか。 PasteDeployで設定ファイルに記述するときに、egg:Paste#wsgiutilsと書くと、Paste egg のentory_points.txt内からwsgiutilsを探し…
http://cheeseshop.python.org/pypi/urlrelay/0.6 ni先生から教えていただいたモジュール Colubridよりさらに、シンプルなWSGIディスパッチャ。 ところで、サンプルコードはデコレータに@がついてないのだが。 URLパターンとHTTPメソッドで実行するWSGIアプ…
http://www.openplans.org/projects/deliverance/ ルールベースで、テーマファイルとコンテンツファイルの内容を入れ替えたりできるフィルタ。 プロキシサーバーとして使うことも出来るし、WSGIミドルウェアとして使うことも出来る。 XPATHを使ったルールベ…
erlangの軽量プロセスの説明に良く使われているpingpongの例をPython threadingで書いてみる。 # -*- encoding:utf-8 -*- """ """ from threading import Thread from Queue import Queue def ping(times, queue): """ """ for i in xrange(times): print "s…
登録人数が25名になりました。 LTネタもだんだん集まってきています。まだ、参加登録可能。 興味があるかたはPyJUG Workshopの登録ぺーじまで。 http://www.python.jp/Zope/workshop/200705
やります。 http://www.python.jp/Zope/workshop/200705/
使うと思われるもの Paste Flup Twill py.test wsgiauth Colubrid Genshi FormEncode ToscaWidgets SQLAlchemy Pasteはwsgiアプリケーションを構築する時に便利なユーティリティ、ミドルウェア。config関係をどうしようかと思っていたが、これが一番親和性が…
どうしてプログラマに・・・プログラムが書けないのか? 親分もやっているようなので参戦 print "\n".join([{0:"Fizz"}.get(i%3,"")+{0:"Buzz"}.get(i%5,"") or str(i) for i in range(1,101)]) 97バイト
twPrototypeはPyPIに2.4用のeggしか置いてない。 とりあえず2.5にインストールするために、eggを落として解凍してsetup.pyをでっちあげる。 #!/usr/bin/env python from setuptools import setup, find_packages setup( name="twPrototype", version="1.5dev…
wsgiauthはopenid認証にも対応してます。そのまま使おうとしても足りないものがいくつか。 - python-openid - python-urljr - python-yadis 以上のモジュールが必要。 pypiに登録されてるのでeasy_installですぐ入れられます。簡単な使い方 from wsgiauth.op…
id:Voluntasとの会話で出てきたので書いてみた #!/usr/bin/env python def mergesort(a): if len(a) in (0, 1): return a p = len(a)/2 f, b = a[:p],a[p:] return merge(mergesort(f), mergesort(b)) def merge(a, b, result=[]): if len(a) == 0: return r…
WSGI認証ミドルウェアライブラリwsgiauthを使ってBasic認証 http://cheeseshop.python.org/pypi/wsgiauth ドキュメントが見つからない*1ので、ソースから使い方をチェック。 from wsgiauth import basic realm = "wsigh auth test" def authfunc(env, user, …
id:kadoppe の人がYahooSearchをやってたので便乗 http://d.hatena.ne.jp/kadoppe/20070330/1175247772 # -*- coding: utf-8 -*- import urllib import urllib2 import pyexpat from BeautifulSoup import BeautifulSoup class YahooSearchRequest (object):…
http://www.nishiohirokazu.org/blog/2007/03/immutable.html 西尾さんとこにimmutableクイズ リスト(のようなものまでOK?) をハッシュのキーにするコードの中間を埋める. hashをなんとかすればいいので、__hash__を入れ替えてみる >>> x = [0] >>> x.__hash…
公式リリースがまちどおしいmod_wsgiをsvnから取って動かしてみてました。 導入はとても楽だった。 ./configure && make && make install でいいと思う。 僕はmakeしたあと手動でmod_wsgi.so をコピーしたけど。 (ちなみにlinuxだと.libsのしたにmod_wsgi.so…
ドキュメントには書かれていないが, requestオブジェクトのenvironアトリビュートからWSGI環境辞書にアクセスできる. WSGIミドルウェアはこの辞書に情報をのせてくることが多いので要チェック