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

jopen 11年前

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的代码。



此版本主要是一些功能的小改动:

  1. 更新nginx配置文件的输出模板,添加 proxy_set_header 指令

  2. 向 ORM 添加 save_file() 方法,你可以用它保存select之后的结果集到一个csv文件中

  3. 修复 SortedDict 类中丢失的 clear() 方法

  4. 修改i18n处理,对于项目和apps方式的抽取,它将首先启动应用,这样是为了让自定义tag可以起作用。但是建议用户尽量不用自定义tag,因为模板中可以直接写python代码。

  5. 向utils/common.py中添加walk_dirs()方法,这个函数可以用来遍历目录,同时可以支持对文件名和后缀的过滤功能。

更多信息请查看这里,相关链接:

Uliweb项目主页
Uliewb文档

同时现在文档已经开始支持中文和英文的切换。不过英文的文档还非常不全。