<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>pylons / Drkcore</title><link>http://blog.kzfmix.com/pylons</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Mon, 07 Jun 2010 19:45:35 +0919</lastBuildDate><item><title>repoze.who</title><link>http://blog.kzfmix.com/entry/1275728377</link><description>&lt;p&gt;&lt;a href="http://groups.google.com/group/pylons-discuss/browse_thread/thread/91c68a7212940665?hl=en"&gt;pylonsのML&lt;/a&gt;によると、&lt;a href="http://authkit.org/"&gt;AuthKit&lt;/a&gt;は廃止の方向で進むようで。&lt;/p&gt;
&lt;p&gt;作者も&lt;a href="http://jimmyg.org/work/code/index.html"&gt;phase out&lt;/a&gt;するって宣言しているし、ここはひとつ&lt;a href="http://static.repoze.org/whodocs/"&gt;repoze.who&lt;/a&gt;でも覚えておこうかなと週末触ってみた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.pylonshq.com/display/pylonscookbook/Authentication+and+Authorization+with+%60repoze.who%60"&gt;Authentication and Authorization with &lt;code&gt;repoze.who&lt;/code&gt;&lt;/a&gt;をみながらやってみたんだけど、あちこち端折ってあるので、ちょっと簡単には動かせなかった。&lt;/p&gt;
&lt;p&gt;というわけでまたあとで。&lt;/p&gt;
&lt;p&gt;The Definitive Guide to Pylonsの著者とAuthKitの作者が一緒なので本はAuthKitの利用を前提で書かれていて内容が古い感があるけど、テストのとことか文書化、デプロイメントのあたりはよく書かれているので、手元にあると重宝する。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1590599349/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/511oUt6D1OL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;The Definitive Guide to Pylons&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    James Gardner&lt;br /&gt;
    Apress / 4049円 ( 2008-12-22 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Mon, 07 Jun 2010 19:45:35 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>AuthKitでSQLAlchemyを使う</title><link>http://blog.kzfmix.com/entry/1264678457</link><description>&lt;p&gt;&lt;a href="http://pylonsbook.com/en/1.1/simplesite-tutorial-part-3.html"&gt;pylons bookの19章&lt;/a&gt;を参照。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1590599349/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51Wo6168PaL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;The Definitive Guide to Pylons&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
James Gardner &lt;br /&gt;
Apress / ￥ 4,506 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from simplesite.model import meta
meta.metadata.bind = meta.engine
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;をいまいちきちんと理解できてない。&lt;/p&gt;

&lt;h4&gt;追記 100130&lt;/h4&gt;

&lt;p&gt;model/meta.pyをみたら&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;"""SQLAlchemy Metadata and Session object"""
from sqlalchemy import MetaData
from sqlalchemy.orm import scoped_session, sessionmaker

__all__ = ['Session', 'engine', 'metadata']

# SQLAlchemy database engine. Updated by model.init_model()
engine = None

# SQLAlchemy session manager. Updated by model.init_model()
Session = scoped_session(sessionmaker())

# Global metadata. If you have multiple databases with overlapping table
# names, you'll need a metadata for each database
metadata = MetaData()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ってなってるだけだった。&lt;/p&gt;
</description><pubDate>Sat, 30 Jan 2010 08:24:28 +0919</pubDate><category>pylons</category><category>AuthKit</category></item><item><title>pylonsはじめました</title><link>http://blog.kzfmix.com/entry/1203519567</link><description>&lt;p&gt;&lt;a href="http://pylonshq.com/"&gt;pylons&lt;/a&gt;はじめました。なかなか面白そうです。&lt;/p&gt;

&lt;p&gt;とりあえず、&lt;a href="http://wiki.pylonshq.com/display/pylonsdocs/Getting+Started"&gt;getting started&lt;/a&gt;と&lt;a href="http://wiki.pylonshq.com/display/pylonsdocs/Flickr+Search+Tutorial"&gt;flickr search tutorial&lt;/a&gt;はやってみた。&lt;/p&gt;

&lt;p&gt;catalystとかJiftyとかturbogearsとか(RoRもそうだっけか?)はとりあえずプロジェクトを用意して何も考えずサーバー起動してアクセスすると小洒落た画面がでてきて、おー！ってちょっとした感動を覚えたりするんだけどpylonsの場合はそういうのなしの方向で。&lt;/p&gt;

&lt;p&gt;ただ、エラー吐かすとなんかすごいよ。エラーから入らせるとは、、、テストファースト？&lt;/p&gt;

&lt;p&gt;&lt;a href="http://wiki.pylonshq.com/display/pylonsdocs/QuickWiki+Tutorial"&gt;QuickWiki Tutorial&lt;/a&gt;に続く、、、&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 11:24:02 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>pylonsでQuickWIki</title><link>http://blog.kzfmix.com/entry/1203763516</link><description>&lt;p&gt;またwikiかよ、、、と敬遠しがちなWikiを作ろうチュートリアルだけど、フレームワーク自体はじめてのヒト向けには素直に書かないといけないし、幾つかのフレームワークを渡り歩いたヒトにも新たな発見とか他のフレームワークとの違いを見せるようなサンプルにしないといけないので、意外と構成を考えるのが難しいですな。&lt;/p&gt;

&lt;p&gt;そういった意味では&lt;a href="http://wiki.pylonshq.com/pages/viewpage.action?pageId=10027064"&gt;pylonsでwikiを作ろうチュートリアル&lt;/a&gt;はdeleteの実装がajaxでのドラッグドロップになってて、しかも簡単に実装できる！っていう喜びが得られてナイスな感じ。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modelまわり&lt;/li&gt;
&lt;li&gt;他のパッケージの依存や自動インストールのやり方&lt;/li&gt;
&lt;li&gt;ルーティングの方法&lt;/li&gt;
&lt;li&gt;Ajax関連&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ルーティング周りをちょっとよく理解していないのと、Ajaxがあっさり書けすぎてて何をやっているのかわからなかったので、あとでpylonsでなんか作ってみよう。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 11:23:33 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>Elixirをさわってみた</title><link>http://blog.kzfmix.com/entry/1205930156</link><description>&lt;p&gt;SQLAlchemyにかぶせてActiveRecordとして扱えるらしい&lt;a href="http://elixir.ematia.de/trac/wiki"&gt;Elixir&lt;/a&gt;を試してみた。&lt;a href="http://elixir.ematia.de/trac/wiki/TutorialDivingIn"&gt;チュートリアル&lt;/a&gt;を一通り。&lt;/p&gt;

&lt;p&gt;面白かったのは継承っぽくかけるとこ。こんな感じでかける。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from elixir import *

metadata.bind = "sqlite:///test.db"
#metadata.bind.echo = True

class Artist(Entity):
    using_options(inheritance='multi')
    name = Field(Unicode(60))

    def __repr__(self):
        return '&amp;lt;Artist "%s"&amp;gt;' % self.name

class Technoartist(Artist):
    using_options(inheritance='multi')

    def __repr__(self):
        return '&amp;lt;TechnoArtist "%s"&amp;gt;' % self.name

class Houseartist(Artist):
    using_options(inheritance='multi')

    def __repr__(self):
        return '&amp;lt;HouseArtist "%s"&amp;gt;' % self.name

class Dnbartist(Artist):
    using_options(inheritance='multi')

    def __repr__(self):
        return '&amp;lt;Drum\'n\'BassArtist "%s"&amp;gt;' % self.name

if __name__ == "__main__":
    from model import *
    setup_all()
    create_all()

    technasia = Technoartist(name=u"Technasia")
    louievega = Houseartist(name=u"Louie Vega")
    joeclaussell = Houseartist(name=u"Joe Claussell")
    nutone = Dnbartist(name=u"Nu Tone")
    omnitrio = Dnbartist(name=u"OmniTrio")

    session.flush()

    print "Artist.query.all()"
    print Artist.query.all()
    print "\nDnbartist.query.all()"
    print Dnbartist.query.all()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Artistを探すと、サブクラスにあたるTechnoArtist,HouseArtist,Drum'n'BassArtistが探索される&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Artist.query.all()
[&amp;lt;TechnoArtist "Technasia"&amp;gt;, &amp;lt;HouseArtist "Louie Vega"&amp;gt;, 
&amp;lt;HouseArtist "Joe Claus sell"&amp;gt;, &amp;lt;Drum'n'BassArtist "Nu Tone"&amp;gt;, 
&amp;lt;Drum'n'BassArtist "OmniTrio"&amp;gt;]

Dnbartist.query.all()
[&amp;lt;Drum'n'BassArtist "Nu Tone"&amp;gt;, &amp;lt;Drum'n'BassArtist "OmniTrio"&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;チュートリアルによると、この先は&lt;a href="http://www.sqlalchemy.org/docs/04/index.html"&gt;SQLAlchemyのドキュメント読むのがいいんじゃねーかな&lt;/a&gt;と書いてあったので、読んでみる。&lt;/p&gt;

&lt;p&gt;あと、このチュートリアルだけだとusing_optionsとかが分からないので&lt;a href="http://elixir.ematia.de/apidocs/elixir.options.html"&gt;API Reference&lt;/a&gt;も読むべしな感じ。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 11:10:35 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>pylonsはモデルだけいじりたいときにはどうすんの?</title><link>http://blog.kzfmix.com/entry/1208958843</link><description>&lt;p&gt;TurboGearsだと&lt;a href="http://www.kzfmix.com/blosxom_archive/Computer/Linux/tg070410.html"&gt;こんな感じ&lt;/a&gt;でいけるじゃないですか？&lt;/p&gt;

&lt;p&gt;pylonsはちょっとよく分からなくて結局&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sqlite3 -separator , test.db ".import makeinu.csv test_table"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;とやってしまった(なんじゃそりゃ)。 &lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 10:58:24 +0919</pubDate><category>Python</category><category>pylons</category><category>sqlite</category></item><item><title>pylonsにはpaster shell</title><link>http://blog.kzfmix.com/entry/1209106104</link><description>&lt;p&gt;pylonsで対話的にモデルを操作したい場合にはdevelopment.iniのあるディレクトリで&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;paster shell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;とすればよいらしい。modelっていう変数に色々入っているので&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;session = model.Session
mol = model.Mol
for m in session.query(mol).filter(mol.MW &amp;gt; 199):
    print m
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;などとやるべしナ感じ。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 10:58:10 +0919</pubDate><category>chemoinformatics</category><category>Python</category><category>pylons</category></item><item><title>pylonsのroutes.py</title><link>http://blog.kzfmix.com/entry/1209389501</link><description>&lt;p&gt;pylonsの&lt;a href="http://routes.groovie.org/"&gt;Routes&lt;/a&gt;がドキュメントみてもいまいちわからんとか思ってたんだけど、&lt;a href="http://wota.jp/ac/?date=20050725"&gt;RoRのドキュメント読んだら&lt;/a&gt;さっくりと理解できそうな気がしてきたところで、routing.pyをいろいろいじってみたらなんとなく理解した感じ。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 10:57:00 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>makoでutf-8を埋め込みたいとき</title><link>http://blog.kzfmix.com/entry/1210424653</link><description>&lt;p&gt;&lt;a href="http://www.makotemplates.org/docs/unicode.html#unicode_specifying"&gt;先頭行にcoding: utf-8と書いておけば&lt;/a&gt;いい。&lt;/p&gt;

&lt;p&gt;そうしないとこんなエラーが出る。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;CompileException: Could not read template using encoding of 'ascii'. Did you forget a magic encoding comment? in file
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;最初わからなかったけれど、あーそういうことねというメッセージだった。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 10:56:21 +0919</pubDate><category>Python</category><category>pylons</category></item><item><title>SimpleSite Tutorial Part 3 (Pylons)</title><link>http://blog.kzfmix.com/entry/1258964894</link><description>&lt;p&gt;もう、自分でなんか作ったときにちゃんと読めばいいやって気分になってしまったので流し読み。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1590599349/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51Wo6168PaL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;The Definitive Guide to Pylons&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
James Gardner &lt;br /&gt;
Apress / ￥ 4,522 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Chapter 19&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AuthKitの使い方&lt;/li&gt;
&lt;li&gt;Permission毎にテンプレートを変える&lt;/li&gt;
&lt;li&gt;Errorドキュメントをいじる&lt;/li&gt;
&lt;li&gt;YUI Rich Text Editorを使う&lt;/li&gt;
&lt;li&gt;Eggのビルド&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ここまで読めばあとはなんかつくるだけ。というか作りたい物は決まっていて、&lt;a href="http://github.com/kzfm/NwDwn"&gt;文献管理システムをPylonsで書き直す&lt;/a&gt;のだ&lt;/p&gt;
</description><pubDate>Mon, 23 Nov 2009 17:28:32 +0919</pubDate><category>Python</category><category>pylons</category></item></channel></rss>