有兴趣的话可以关注Uliweb

有兴趣的话可以关注Uliweb

这是我正在做的一个Python Web Framework,还没有正式发布,正在紧张的开发过程中,目前主要就我一个人在做,已经完成不少的工作,这里有一个demo站点:

http://uliwebproject.appspot.com, 它就是使用Uliweb搭建,并且运行在GAE上的。它是uliweb的宣传及Demo站点。

目前已经有许多的文档可以参考,不过还有许多正在编写中。欢迎大家下载试用,并提出宝贵意见。整个软件采用GPLv2发布,项目在: http://code.google.com/p/uliweb.

如果你有问题欢迎订阅Uliweb邮件列表或直接在python-cn邮件列表与我交流。

下面是我写的关于它的介绍:

Uliweb 简介

作者:        Limodou <limodou@gmail.com>

Contents

    * 它是什么
    * License
    * 基础组件
    * 功能特点
    * 项目目标

它是什么

Uliweb是一个新的Python Web Framework,它之所以会产生是因为现有的框架多少有些令人不满意的地方,而且许多情况下这些不满意的地方或多或少对我开发Web有影响,因此在经过对不少框架的学习之后,我决定开发一个新的框架,希望可以综合我认为其它框架中尽可能多的优点,同时使这个新的框架尽可能的简单,易于上手和使用。

这个项目是由Limodou <limodou@gmail.com>发起并创建的。其中得到了许多人的帮助。
License

Uliweb按照GPL v2进行发布。
基础组件

它并不完全是从头写的一个东西,我目前使用了一些库,如:

    * Werkzeug 用它来进行框架的核心处理,比如:命令行, URL Mapping,Debug等。
    * webob 用它来生成Request, Response对象的生成和处理。
    * geniusql 基于它封装了Uliorm,可以使用ORM对数据库进行处理。

还有一些比较小的引用,如:

    * template 是从 web2py 改造来的
    * 部分处理代码从 Django 中借鉴

另外还有一些是自已新造的,如:

    * Form处理,可以用来生成HTML代码和对上传的数据进行校验
    * i18n处理,包括对模板的处理
    * Uliorm,是在geniusql基础之上进行的封装,同时参考了GAE中的datastore的代码
    * 框架的处理代码,这块不可能不自已造了
    * 插件机制,从Ulipad中移植并进行了改造

功能特点

    *

      组织管理
          o 采用MVT模型开发。
          o 分散开发统一管理。采用App方式的项目组织。每个App有自已的配置文件,templates目录, static目录。使得Uliweb的App重用非常方便。同时在使用上却可以将所有App看成一个整体,可以相互引用静态文件和模板。缺省是所有App都是生效的,也可以指定哪些App是生效的。所有生效App的配置文件在启动时会统一进行处理,最终合成一个完整的配置视图。
    *

      URL处理
          o

            灵活强大的URL映射。采用Werkzeug的Routing模块,可以非常方便地定义URL,并与View函数进行绑定。同时可以根据view函数反向生成URL。支持URL参数定义,支持缺省URL定义,如:

            appname/view_module/function_name

    *

      View与Template
          o View模板的自动套用。当view返回dict对象时,自动根据view函数的名字查找对应的模板。
          o 环境方式运行。每个view函数在运行时会处于一个环境下,因此你不必写许多的import,许多对象可以直接使用,比如request, response等。可以大大减少代码量。
          o 模板中可以直接嵌入Python代码,不需要考虑缩近,只要在块结束时使用pass。支持模板的 include和继承。
    *

      ORM
          o 支持Model与数据库的自动迁移,包括自动建表和表结构的修改。
    *

      i18n
          o 支持代码和模板中的i18n处理
          o 支持浏览器语言和cookie的自动选择,动态切换语言
          o 提供命令行工具可以自动提取po文件,可以以App为单位或整个项目为单位。并在处理时自动将所有语言文件进行合并处理。当发生修改时,再次提取可以自动进行合并。
    *

      扩展
          o plugin扩展。这是一种插件处理机制。Uliweb已经预设了一些调用点,这些调用点会在特殊的地方被执行。你可以针对这些调用点编写相应的处理,并且将其放在settings.py中,当Uliweb在启动时会自动对其进行采集,当程序运行到调用点位置时,自动调用对应的插件函数。
          o middleware扩展。它与Django的机制完全类似。你可以在配置文件中配置middleware类。每个 middleware可以处理请求和响应对象。
          o views模块的初始化处理。在views模块中,如果你写了一个名为__begin__的函数,它将在执行要处理的view函数之前被处理,它相当于一个入口。因此你可以在这里面做一些模块级别的处理,比如检查用户的权限。因此建议你根据功能将view函数分到不同的模块中。
    *

      命令行工具
          o 可以导出一个干净的工作环境
          o App的创建,会自动包含必要的目录结构,文件和代码
          o 静态文件导出,可以将所有生效的App下的static导出到一个统一的目录
          o 启动开发服务器
    *

      部署
          o 支持GAE部署
          o 支持Apache下的mod_wsgi部署
    *

      开发
          o 提供开发服务器,并当代码修改时自动装载修改的模块
          o 提供debug功能,可以查看出错的代码,包括模板中的错误
    *

      其它
          o Uliweb是一个Demo与源码合二为一的项目。它不仅包括所有核心代码,还同时包括了 uliwebproject 网站的源码,同时还有其它的一些Demo,所以你可以直接使用这些代码。
          o 对于静态文件的支持可以处理HTTP_IF_MODIFIED_SINCE和trunk方式的静态文件处理。

项目目标

    * 开发一个简单易用的框架
    * 框架要足够灵活,并易于扩展
    * 包含足够的示例代码
    * 编写清晰易懂的文档
    * 能够在多种环境下使用
在列表里看到这个了 呵呵

强烈支持  BPUG好久没会课了 什么时候找个周末会课  木头兄可以谈谈这个

嘿嘿
zoom.quiet去了金山之后就组织不起来了。
支持一下
support you.
现在项目处于什么状态呢?是完全可用改进中还是DEMO功能增加阶段?
完全可用要看你用什么功能了。uliwebproject就是一个demo,它没有用到数据库,而且这块你也可以根据需要自已添加,比如使用mysql, sqlite。如果说不依赖于uliweb来实现数据库的操作,包括session,那么我想它可能已经是可用的了。如果你还需要内置的数据库,session支持,那么它还不够。

关键还要看你的需求。

功能总是在不断增加中的,所以真正做到完全可用也不是件容易的事。就是许多成熟的框架也在不停地改进中。但因为它是我个人兴趣爱好,我希望可以一直做下去(ulipad可是已经做了4年多了,还在维护中),目前还没有过多的网站使用它,所以我很难说是否够你使用。你可以试一下,并进行关注。

现在主要在完善文档,希望让大家使用起来不用总去查源码。