python storm debug message 

from storm import locals as orm
from storm.tracer import debug as orm_debug

orm_debug(True)

db = orm.create_database("sqlite:")
store = orm.Store(db)
store.execute("CREATE TABLE person(id INTEGER PRIMARY KEY, name VARCHAR)")

class Person(object):
__storm_table__ = "person"
id = orm.Int(primary=True)
name = orm.Unicode()

joe = Person()
joe.name = u'crown.hg'
store.add(joe)
store.flush()
print joe.id, joe.name

输出信息如下
>>> 
[11:18:28.415448] EXECUTE: 'CREATE TABLE person(id INTEGER PRIMARY KEY, name VARCHAR)', ()
[11:18:28.488695] DONE
[11:18:28.507419] EXECUTE: u'INSERT INTO person (name) VALUES (?)', (u'Joe Johnes',)
[11:18:28.528220] DONE
[11:18:28.544659] EXECUTE: u'SELECT person.id FROM person WHERE (OID=1)', ()
[11:18:28.561381] DONE
1 Joe Johnes

提示:当前版本为0.14,可用from storm.tracer import debug 然后debug(True)来打开调试开关,若你有的版本小于0.14,则可用import storm.database 然后storm.debug.DEBUG = True 打开调试开关。
[ add comment ] ( 3 views ) permalink ( 3 / 15 )
Fix: ForwardRequestException(authkit v0.4.2) 

在pylons项目开发中,开箱即用的authkit给我们带来不少方便。

曾见到不少哥们到除在找怎样自定义authkit的登录验证页面,你可以通过在development.ini中设置authkit.form.template.obj = xscripter.controllers.auth:make_signin_template得到自定义的效果,但是由于受到authkit只受接收authkit.form.template.obj提交的username,password字段,功能大打折扣。

虽然还末发布的authkit v0.4.3版中新增了一个authkit.form.action选项,可自定义一个接收authkitform.template.obj提交的表单字段,并进一步处理提交字段的函数,此函数返回True或False来表示认证成功或失败,但现在从看来,对新手来说还是有些复杂。比如:提交的表单,有图文验证码怎办,虽然可以作到,那对新手来说还是太过复杂化啦。

其实,authkit有一个forward的模块就很好用,也容易于现有的项目集成。
然而,此模块已一年多没有更新啦,现在用pylons的@authorize装饰器如在控制器中使用@authorize(RemoteUser()),在没有登入的情况下会引发一个,ForwardRequestException,笔者也提交一个补丁,Fix: ForwardRequestException。主要解决思路是在pylons_adaptors中事先判断用户是否登录,若没登录直接重定向到signin页面。

鸟语太烂,讲的不清楚,可能会影响鬼老对补丁的理解。


[ add comment ] ( 1 view ) permalink related link ( 3 / 15 )
pylons enhancement:@validate,refresh field value from new response  

pylons框架@validate装饰器,粘合formencode,用来检验表单输入和转换表单数据很好用,然而本人却发现一个小小的问题,就是每次表单填写完提交后,若表单检验出错,@validate粘合的formencode.htmlfill会存储上提交时的数据,这样若表单在检验错误信息返馈时,若有一些隐藏域的数据要即时更新,则合@validate现有的功能发生冲突,为了鱼和熊掌兼得,本人也提交了一个小小的功能增强补丁,祥见@validate refresh field value from new response。主要是修改源文件pylons/decorators/__init__.py,从行162之后添加如下代码。
#Tickets type:enhancement version:0.9.7
#description:refresh field value from new response
#eg:@validate(schema = FormRegister(), form='index', post_only=True, on_get=False, refresh_fields=('hexdigest',))
#source:pylons/decorators/__init__.py
#line begin:162

request.environ['pylons.routes_dict']['action'] = form
response = self._dispatch_call()

# refresh field value from new response
if 'refresh_fields' in htmlfill_kwargs:
for r_f in htmlfill_kwargs['refresh_fields']:
if r_f in params:
del params[r_f]
else:
del htmlfill_kwargs['refresh_fields']

# XXX: Legacy WSGIResponse support

[ add comment ] ( 1 view ) permalink related link ( 3 / 15 )
VTE: Failed to load terminal capabilities from '/etc/termcap' 


[crown@localhost ~]$ *** VTE ***: Failed to load terminal capabilities from '/etc/termcap'


sudo pacman -S termcap-compat

[ add comment ] ( 1 view ) permalink ( 3 / 15 )
gimp 2.6 : symbol lookup error: /usr/lib/libgegl-0.0.so.0: undefined symbol: g_dgettext 

gimp 2.6 : symbol lookup error: /usr/lib/libgegl-0.0.so.0: undefined symbol: g_dgettext

fix:
sudo pacman -Sy glib2
[ add comment ] ( 5 views ) permalink ( 3.1 / 17 )

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Next> Last>>