红联Linux门户
Linux帮助

Uliweb 0.1.6发布,灵活易用的Python框架

发布时间:2012-10-20 09:40:48来源:红联作者:empast
本次版本距上一个版本已经一个月了,所以也积累了不少的改进,主要变化如下:

添加CSRF APP,可以支持CSRF的保护
?加在模板中可以使用块注释,可以忽略块内的模板代码
优化makeproject生成的项目文件,?加.gitignore和local_settings.ini
修复soap View模块中会两次调用__begin__和__end__的bug
将functions和decorators机制进行抽象,提供Finder类,可以用它实现functions的机制
使用inspect.isclass()来判断一个对象是否class,它可以兼容判断classic class和new style class
修复 --version 命令参数的bug
优化 import_mod_attr 函数,使其可以接受对象参数(原来只支持字符串路径形式)
向 Dispatcher ?加 handler() 方法,可以用它返回的对象来执行:get(), post(), delete()等模拟客户端的RESTFul请求,例如:

from uliweb import application

handler = application.handler()
r = handler.get('/index')
#r is response object向 uliweb/utils/test.py 中添加 client_from_application() 方法
向 make_application 和 make_simple_application 函数添加 dispatcher_cls和dispatcher_kwargs参数,可以在创建application时使用不同的Dispatcher类
修复在extend同名模板时处理多次的bug
添加upload APP中的filename_convert 至FUNCTIONS配置中
向utils/common.py中添加 get_uuid() 函数
修复 orm 中 get_collection_name() bug
修复在进行json处理时,无法处理 0x00-0x1f 的bug
添加 generic APP,将常用的几个View类添加至FUNCTIONS中。同时向generic中添加generic命令,可以用它自动生成List, Add, Edit, View, Delete的代码框架。目前已经支持可以生成angularjs, html, easyui三种风格的代码框架。并且在处理Add, Edit, Delete时还可以选择是否采用ajax方式进行处理。其它在通常的开发时,可以先使用generic来生成一个初始的代码版本,然后基于这个版本再进行开发。
向BootstrapLayout中添加fieldset支持
向DetailView返回的view对象中添加.f属性,可以用它来引用DetailView中的字段
修改Form中的IntField生成HTML的Input控件时的类型为Number
修改DateTimeField在生成HTML代码时不使用UTC时区
修复使用 GET 或 POST在绑定同一个链接时,后者会替?前者的bug
修复在ini中使用 u""" 或 u''' 时解析错误的bug
在启动时,过滤无模板文件的目录,加快处理效率
优化template_plugins中的use模块的定义方式,简单的定义可以直接写在settings.ini中,同时可以支持版本的配置功能
修改模板中在处理Python代码缩近时,对return, continue, break的反缩近处理,全部采用判断pass
向html.py中添加一个Builder类,使用它可以直接生成包含不同部分的对象,可以对这些部分分别进行处理,最终合成统一的字符串,也可以根据需要分开使用。主要用在HTML代码的生成,允许用户根据需要结合使用或分拆使用
向ORM中的get(), filter()等处理添加额外的不定关键字参数,这些参数将在执行select时传递给select方法。目前可以使用它来实现for_update的处理,如:

Model.get(Model.c.id==id, for_update=True)
Model.filter(condition).for_update().filter(condition)

关于for_update可以参考sqlalchemy相关的文档
优化generic.py中的ListView和SimpleListView的处理,可以自动识别request中的page和rows值,当调用时没有传入pageno或rows_per_page参数时生效。
添加 secretkey APP,可以用它进行加解密的处理。加密类可以由用户进行配置。纯Python的DES算法实现,可以考虑使用pyDes库。同时提供 uliweb makekey命令,可以自动生成key文件。key文件的路径可以配置到settings.ini中。加解密示例如下:

from uliweb import functions
des = functions.get_cipher()
d = des.encrypt('hello')
des.descrypt(d)删除pagecache APP
优化 safe_unicode 和 safe_str 函数,可以支持 i18n 的LazyString对象
向 commands.py 模块中添加 get_input() 方法 ,可以用来当参数值不存时从命令行获得一个值
删除0.1.4中提供的APPS_LAYOUT的机制,但是可以在模板中替?为:

{{extend settings.APP_LAYOUTS.get('messages', 'layout.html')}}因此仍然可以把要替?的模板配置到settings.ini中。另一种办法是在新的app中直接定义一个要替?的同名模板,以实现新的要求。

Uliweb: https://github.com/limodou/uliweb
Plugs: https://github.com/limodou/plugs Uliweb APP收集
Par: https://github.com/limodou/par Markdown解析
Uliweb-Doc: https://github.com/limodou/uliweb-doc 文档
UliwebZone: https://github.com/limodou/uliwebzone 社区项目

来自:开源中国社区
文章评论

共有 0 条评论