makoでutf-8を埋め込みたいとき
そうしないとこんなエラーが出る。
CompileException: Could not read template using encoding of 'ascii'. Did you forget a magic encoding comment? in file
最初わからなかったけれど、あーそういうことねというメッセージだった。
pylonsのroutes.py
pylonsのRoutesがドキュメントみてもいまいちわからんとか思ってたんだけど、RoRのドキュメント読んだらさっくりと理解できそうな気がしてきたところで、routing.pyをいろいろいじってみたらなんとなく理解した感じ。
pylonsにはpaster shell
pylonsで対話的にモデルを操作したい場合にはdevelopment.iniのあるディレクトリで
paster shell
とすればよいらしい。modelっていう変数に色々入っているので
session = model.Session
mol = model.Mol
for m in session.query(mol).filter(mol.MW > 199):
print m
などとやるべしナ感じ。
pylonsはモデルだけいじりたいときにはどうすんの?
TurboGearsだとこんな感じでいけるじゃないですか?
pylonsはちょっとよく分からなくて結局
sqlite3 -separator , test.db ".import makeinu.csv test_table"
とやってしまった(なんじゃそりゃ)。
Elixirをさわってみた
SQLAlchemyにかぶせてActiveRecordとして扱えるらしいElixirを試してみた。チュートリアルを一通り。
面白かったのは継承っぽくかけるとこ。こんな感じでかける。
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 '<Artist "%s">' % self.name
class Technoartist(Artist):
using_options(inheritance='multi')
def __repr__(self):
return '<TechnoArtist "%s">' % self.name
class Houseartist(Artist):
using_options(inheritance='multi')
def __repr__(self):
return '<HouseArtist "%s">' % self.name
class Dnbartist(Artist):
using_options(inheritance='multi')
def __repr__(self):
return '<Drum\'n\'BassArtist "%s">' % 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()
Artistを探すと、サブクラスにあたるTechnoArtist,HouseArtist,Drum'n'BassArtistが探索される
Artist.query.all()
[<TechnoArtist "Technasia">, <HouseArtist "Louie Vega">,
<HouseArtist "Joe Claus sell">, <Drum'n'BassArtist "Nu Tone">,
<Drum'n'BassArtist "OmniTrio">]
Dnbartist.query.all()
[<Drum'n'BassArtist "Nu Tone">, <Drum'n'BassArtist "OmniTrio">]
チュートリアルによると、この先はSQLAlchemyのドキュメント読むのがいいんじゃねーかなと書いてあったので、読んでみる。
あと、このチュートリアルだけだとusing_optionsとかが分からないのでAPI Referenceも読むべしな感じ。
pylonsでQuickWIki
またwikiかよ、、、と敬遠しがちなWikiを作ろうチュートリアルだけど、フレームワーク自体はじめてのヒト向けには素直に書かないといけないし、幾つかのフレームワークを渡り歩いたヒトにも新たな発見とか他のフレームワークとの違いを見せるようなサンプルにしないといけないので、意外と構成を考えるのが難しいですな。
そういった意味ではpylonsでwikiを作ろうチュートリアルはdeleteの実装がajaxでのドラッグドロップになってて、しかも簡単に実装できる!っていう喜びが得られてナイスな感じ。
- modelまわり
- 他のパッケージの依存や自動インストールのやり方
- ルーティングの方法
- Ajax関連
ルーティング周りをちょっとよく理解していないのと、Ajaxがあっさり書けすぎてて何をやっているのかわからなかったので、あとでpylonsでなんか作ってみよう。
pylonsはじめました
pylonsはじめました。なかなか面白そうです。
とりあえず、getting startedとflickr search tutorialはやってみた。
catalystとかJiftyとかturbogearsとか(RoRもそうだっけか?)はとりあえずプロジェクトを用意して何も考えずサーバー起動してアクセスすると小洒落た画面がでてきて、おー!ってちょっとした感動を覚えたりするんだけどpylonsの場合はそういうのなしの方向で。
ただ、エラー吐かすとなんかすごいよ。エラーから入らせるとは、、、テストファースト?
QuickWiki Tutorialに続く、、、


