python

SQLObjectで複合キー(みたいなもの)

2008-09-07 - とりあえず日記で扱ったネタの続き。それぞれ、どんなSQL文が出力されるか確認してみた。 誰でもやりゃあすぐ判る情報。 まぁ、これもメモ。 どちらも、UNIQUE制約付けてくれています。付け方違うけど。 継承の実装の仕方、djangoとturbogears…

SQLObjectで複合キー(みたいなもの)

ググっても、複合キーはできないという意見が殆ど。 ただ、複合ユニークキーが設定できれば、自分の問題は解決できるので、その方針で。Djangoでは、unique_together で設定できる。 class Hoge(models.Model): owner_id = models.CharField(u'所有者ID', ma…

1.0(pre)ではdispatch.connectではなく、signals.hogehoge.connect

modelsでは、DBへのアクセスをフックして、ある程度オレ様処理を追加することができる。 と、いうのは既知らしい。 ところが、modelが派生関係で、親にしかフックのコードを実装した場合の例が無かった。 書籍通りでは、当然のごとく動かなかったし、下手にs…

proxyを介したHTTPS通信をする

pythonが標準で持っているライブラリでは、バグを含んでいるために掲題のことはできません。少なくとも、2.4, 2.5くらいまではできていませんでした。 最近よく使う、mechanizeというライブラリでも、proxyを介したHTTPS通信をすることができません。そこで …

職場のGLから教えてもらったPythonのWebservice実装。

TGWebServicesはTurboGearsの拡張として提供されています。これはデコレータを追加することで関数をWebServiceとして公開することが出来、オブジェクトをXML-RPCやSOAP電文、JSONとして送信できるようになるそうな。 結構シンプルに書けるようです。大昔、Zo…

pythonでExcelを弄る方法

win32comを利用してExcelを弄る方法だと、 OSはWindowsであること Excelがインストールされていること が必要になります。 開くだけでマクロが仕込まれているようなExcelファイルだと、勝手にマクロが起動します。 これは困りものです。そこで、pyExcelerato…

LDAP認証を組み込んでみる(その2)

昨日書いたコードで試したら、会社のActiveDirectoryではうまく動かず。 仕方ないので、hackしてみる。 とりあえず動いたので、参考になればと、書き散らかしたものを恥を忍んで載せます。エラーチェックやバリデートチェックは適宜入れてください。LDAPの簡…

LDAP認証を組み込んでみる(その1)

http://nagosui.org/Nagosui/Misc/Turbogears/docs/1.0-b/IdentityManagementの最後からhttp://trac.turbogears.org/attachment/wiki/IdentityManagement/soldapprovider.pyを参照し、LDAPとの連携を考えてみる。そのためには、Python-LDAPモジュールが必要…

DataGridにアンカーを

Turbogears::datagridへのアンカー埋め込み 風に舞う羽毛のようなものたち/ウェブリブログや@paginate() — TurboGears 1.0 documentationの後半を参考に、以下のように組み立ててみる。 from elementtree import ElementTree as ET from controllers import …

AutoCompleteFieldにデフォルト値

他のコンポーネントは、Fieldに紐づけておいたname値と、セットしたいデフォルト値とを辞書で紐づけるだけだったのだが。 AutoCompleteFieldは、どうやら、内部的に更に辞書で紐づけて渡す必要があったらしい。 き、気付かないって……以下、pcidというnameを…

AutoCompleteFieldのバリデート

CompoundFormFieldの派生クラスは、だいたい渡される値の型が異なるようです。 で、バリデートにも気を配る必要があり……どうせなら、それ向けに用意されていれば良いのですが、都合の良いものが見当たりませんでした。 以下のようにスキーマを指定して、text…

AutoCompleteField を使用する

Ajaxのフィールドのひとつで、 ユーザからの入力をキックとして、 随時サーバに問い合わせをして 結果をフィールド内に返すことのできるのが AutoCompleteFieldです。非常に簡便に使えるのですが、最初に使う場合、ちょっとピンとこないので、メモ。 普通に…

SQLObjectでSELECT DISTINCT columnA FROM tableB

TurboGearsでデフォルトで使われている、O/RマッパーであるSQLObjectで、 表題のような、特定の列の値の一覧を取得する方法です。直接SQL文を発行する、という手もあると思うのですが、distinctには対応していないように見受けられました。 ので、下記のよう…

TurboGearsの本

埒があかないので、本を買うことにしました。 基本、ソースコードを読むのですが、 標準以外のwidgetとかについても知りたいし。amazon:Rapid Web Applications With Turbogearsあれ?Djangoのときは本を買わなかったのに、なぜかしらん。

tgcrud

tg-adminから、コマンド指定でモデルのCRUDテンプレートを生成するコマンド。 Unofficial扱いで、後からインストールするツールでしたが、こういうのが欲しいですよ、標準で。 特に、Djangoでは標準で付いていただけに、無いと物足りない----ていうか、面倒…

TurboGearsで困っていること

思うところがあって、WebアプリケーションフレームワークのひとつであるところのTurboGearsをいじり始めました。 Djangoの安定性、コンセプトの一貫性に惹かれていじくりまわしていたのですが、良いとこどり感の強さが目立ってきたTurboGearsにフラフラと引…