发布于 2014-11-22 14:30:17 | 198 次阅读 | 评论: 0 | 来源: 网友投递
Uliweb Python Web开发框架
Uliweb是国人开发的一个开放源代码的Python Web Framework,Uliweb并不是一个从头开始的框架,它使用了一些较为成熟的库,如:用来进行命令行、URL映射、Debug等核心处理的Werkzeug; 用来生成和处理请求、响应对象的webob;强大的ORM库SqlAlchemy等等。
修正 generic 中的 AddView 和 EditView 对 version的处理。当version为真时才会将version值 传入obj.save()中。而不是False时也自动传入。以避免表中无version字段时的出错。
修正对同一个view函数同时使用 expose('/') 和 expose('') 时不正确的bug。
修正在一个Model中多次使用 ManyToMany 使用 through 时
恢复 count() 的处理使用旧的方式,即使用条件来计算,而不是根所结果集,对于结果集情况需要自行处理,因为 有可能对性能影响很大。
修正模板中使用 try: 的bug
增加 sequence app,可以用来它生成序列值。详情参见 sequence
优化 nginx 和 supervisor 配置内容的生成
向URL匹配规则缺省添加 strict_slashes=False 的参数,这样URL结尾有无 '/' 都是正确的
优化 Reference() ,如果 reference_class 为 None,则自动处理为 SelfReference
优化 ManyToMany(),如果 reference_class 为 None,则自动实现对自身的多对多的关系
在app下的settings.ini中添加 #{appname} 的支持,会自动替换为当前app的名字。
在模板中添加对 head.js 的支持,可以使用 {{head "xxx"}} 和 {{head_link "xxx.js"}}标签,类似于 {{use}}和{{link}}。不过uliweb本身没有包含 head.js,将放在plugs中,并且是我修改过的。
Uliweb是国人开发的一个开放源代码的Python Web Framework,Uliweb并不是一个从头开始的框架,它使用了一些较为成熟的库,如:用来进行命令行、URL映射、Debug等核心处理的Werkzeug; 用来生成和处理请求、响应对象的webob;强大的ORM库SqlAlchemy等等。
Uliweb是一个新的Python Web Framework,它之所以会产生是因为现有的框架多少有些令人不满意的地方,而且许多情况下这些不满意的地方或多或少对于Web开发有影响,因此在经 过对不少框架的学习之后,我决定开发一个新的框架,希望可以综合我认为其它框架中尽可能多的优点,同时使这个新的框架尽可能的简单,易于上手和使用。不过 这个框架目前主要还是一个人在做,并且是业余在做,所以在进度上相对要慢一些。
Uliweb并不是一个从头开始的框架,它使用了一些较为成熟的库,如:用来进行命令行、URL映射、Debug等核心处理的Werkzeug; 用来生成和处理请求、响应对象的webob;强大的ORM库SqlAlchemy等等。Uliweb在开发 中还借鉴了象web2py的 Template模板模块,Django的一些设计思想和成果。
Uliweb是采用类Django的MVT的模型,整个项目将由若干个相对独立的app构成,每个app将有自已的配置文件,templates目 录,static目录等。URL可以自动映射也可以手动映射。模板中可以直接嵌入Python代码,但是你不需要关心代码的缩近,只要注意在块结束前加上 pass语句。对数据库的处理使用ORM的方式进行处理,同时你还可以直接使用底层的SQLAlchemy模块。支持代码和模板中的i18n的处理。 Uliweb还从Ulipad中移植了Plugin机制,可以方便地在框架中添加用户特殊的处理。通过提供的命令行工具可以执行象启动开发服务器,导出源 代码等操作。现在Uliweb可以在GAE,mod_wsgi,fastcgi,scgi,cgi等多种环境下部署。
除此之外,Uliweb框架中包含众多自有的创新,如可用来生成HTML代码和对上传的数据进行校验的Form处理,包括对模板和页面的i18n处理,框 架处理代码,从Ulipad中移植并进行了改造的插件机制。
值得一提的是,Uliweb框架中将开发自己的ORM 机制Uliorm,Uliorm在SqlAlchemy基础之上进行封装,同时参考了GAE中datastore的代码。