Turbogears雜七雜八的問題

最近都在玩Turbogears,遇上不少問題,趁機記下來,免得之後忘了怎麼解決。

1. Turbogears內建的identity很方便,把user, group, permission, session全都解決了。唯一缺的一角是registration, 在Registration for TurboGears可以找到有人寫好的package。

2. 上面提到的registration package,用它網頁上的方法裝並不會自動建立需要的table,還得先在[PACKAGE].egg-info/sqlobject.txt中的db_module後加上[PACKAGE].register_model才行。

3. SQLObject底層用MySQL時,處理UTF-8會有問題。解決的方法是把dev.cfg中的sqlobject.dburi改為:

sqlobject.dburi="mysql://[ID]:[PASSWORD]@localhost:3306/[DATABASE]?
sqlobject_encoding=utf-8&read_default_file=my.cnf"

並且在/etc/mysql/my.cnf中,要在[client]下設定”default-character-set = utf8″

4. registration package底層用MySQL時也會碰上個問題, 錯誤訊息是:

TypeError: decoding Unicode is not supported 

我目前是硬hack /usr/lib/python2.4/site-packages/ SQLObject-0.7.1dev_r1860-py2.4.egg/sqlobject/
mysql/mysqlconnection.py 。
在裡面找:

myquery = unicode(query, self.encoding)

改為:

if type(query) != unicode:
myquery = unicode(query, self.encoding )
else:
myquery = query

這樣就不會有問題了。

Leave a Reply

Your email address will not be published. Required fields are marked *

*