0.2.4

  • 修正 ORM 与 SQLAlchemy 0.9.1 不兼容的Bug. 旧的写法:

    cond = None
    cond = (Blog.c.id==5) & None

    在 0.9.1 中将不是正确的,因为 None 不会被忽略掉(0.8.x 只在 and 时会这样), 所以你可以将 cond = None 改为:

    from sqlalchemy.sql import true
    cond = true()

    或者

    from uliweb.orm import true
    cond = true()
  • 向 functions 中添加 __contains__ , 这样如果要检查一个 API 是否在 functions 中存在,只要:

    'flash' in functions
  • 重构 generic.py, 删除对 functions.flashfunctions.get_fileserving 的缺省依赖。
  • 修复在 view 函数中对 yield 的支持, 你还可以在 gevent 环境中使用,例如:

    @expose('/test')
    def test():
        yield "<ul>"
        for i in range(10):
            yield "<li>%d</li>" % (i + 1)
            sleep(1)
        yield "</ul>"
  • 修复 rawsql() 在不同数据库引擎中出错的 bug
  • 修复 jsonp() 在处理中文时的 bug
  • 添加 trim_path() 函数向 utils/common.py这,可以用它将一个路径处理为指定长 度,过长的部分会转为 ...

    >>> a = '/project/apps/default/settings.ini'
    >>> trim_path(a, 30)
    '.../apps/default/settings.ini'

    缺省的限制长度是 30。

  • 在命令行使用了 -v 参数时,将输出 ORM 连接信息。并且口令将会替換为 '*' ,例如:

    $>uliweb syncdb -v
    Connection : mysql://blog:***@localhost/blog?charset=utf8
    
    [default] Creating [1/1, blog] blog...EXISTED
  • 添加 makeapp 命令可以一次创建多个 app 的支持,如使用:

    uliweb makeapp a b c

    一次创建 a, b, c app。

  • 重构 save_file() 的处理, 添加 headersconvertors 参数。

    headers 用于创建 csv 的头时,以替換原来字段的名字,但是你也可以象下面来 创建别名:

    User.c.username.label(u"Name")

    convertors 用于转換字段的值,例如:

    def name(value, data):
        """
        value is the column value
        data is the current record object
        """
        return value + 'test'
    save_file(do_(select([User.c.name])), 'test.csv', convertors={'name':name})
  • 修复 call_view() 调用 wrap_result bug。