报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

Python Web 框架 UliWeb 开发进展

  • 2008-08-06
  • 本文字数:1559 字

    阅读完需:约 5 分钟

国产的 Python Web 开发框架 UliWeb 由啄木鸟社区的 Python 开发者 Limodou 发起并创建,项目启动后吸引了不少 Python 开发者的关注和加入。就 UliWeb 的项目发起初衷,Limodou写道

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

Uliweb 按照 GPL v2 协议开放源代码。Uliweb 并不是一个从头开始的框架,它使用了一些较为成熟的库,如:用来进行命令行、URL 映射、Debug 等核心处理的 Werkzeug ;用来生成和处理请求、响应对象的 webob ;强大的 ORM 库 SqlAlchemy 等等。Uliweb 在开发中还借鉴了象 web2py 的 Template 模板模块, Django 的一些设计思想和成果。就 Uliweb 框架的功能特点,Limodou 介绍道:

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 的代码。在谈到为何要设计自己的 ORM 框架,Limodou 这样回答:

在比较了若干的 Python ORM 模块之后,都不太让人满意。我比较喜欢 Django 的 ORM,不过它不太容易独立使用,并且与它的 Admin 功能绑得过于紧密。 SQLAlchemy 有几种 ORM 的映射方式,但是不太满足 Uliweb 的自动化的需求。其它的象 SQLObject 我不喜欢。web2py 的不好移植, 并且功能相对弱一些。Storm 是 LGPL 的,一旦有修改不方便应用。还有其它一些,不一而足。因此我以 SQLAlchemy 为基础,正在开发新的 Uliorm,一方面做为尝试,另一方面研究如何与框架绑定,这样可以更方便地为 Uliweb 服务。

目前 Uliweb 框架的开发工作正在稳步持续的进展当中,就目前的开发进度和下一步将实现的功能,Limodou 谈到:

目前 Uliweb 已经可以部署并运行在 GAE 环境上,但是由于 GAE 的 Datastore 相对特殊,还没有集成到 Uliorm 中,但框架的其它功能可以正 常使用,如:URL 映射,模板等。Uliweb 目前已经支持多种环境的部署,将继续增加新的部署方式。Uliorm 目前已经支持多对一的关系,下一步将增 加多对多,一对一的关系的处理。对 session, cache 进行进一步完善。继续完善文档,方便用户的开发。

基于 Python 的 Web 应用开发正在逐步增多,出现了基于 web.py 开发的 sohu 闪电邮这样的国内大型 Python Web 应用。国产 Web 开发框架 Uliweb 的出现,在为开发者提供另一个选择的同时也无疑增加了国内 Python 社区的活力和信心,期待 Uliweb 日 后的发布将会为 Python 社区增加新的动力,也期待更多感兴趣开发者加入进来,一起推动国产 Web 开发框架 Uliweb 的发展。

2008-08-06 05:5310978
用户头像

发布了 74 篇内容, 共 13.1 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

深入浅出openGauss的执行器基础

daydayup

opengauss

openGauss都做了哪些算子优化工作?

daydayup

opengauss

Java干货分享—Calendar 类的使用

java易二三

Java 编程 程序员

场景题-如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。

派大星

Java 面试题

基于 Graviton2处理器构建容器化基因分析工作负载

亚马逊云科技 (Amazon Web Services)

云计算

ZBC Staking 即将开启,全新利好来袭

西柚子

Code片段 GC

Bert

黄凯耀:深度解读openGauss架构创新与新特性

daydayup

opengauss

openGauss数据库源码解析系列文章——执行器解析

daydayup

opengauss

PoseiSwap 即将开启 POSE 单币质押,治理体系将全面运行

BlockChain先知

演讲实录:指标平台+AI 的技术落地和未来展望

Kyligence

Kyligence Copilot

ZBC Staking 即将开启,全新利好来袭

股市老人

Java基础——IO流

java易二三

Java 编程 程序员

Java——二维数组的用法

java易二三

Java 基础入门

通过降本增效,提升测试价值

老张

研发效能 降本增效

openGauss DBMind上的多指标关联性分析介绍

daydayup

opengauss

INFINI Labs 产品更新 | Easysearch 新增分词插件、Gateway 支持邮件发送等功能

极限实验室

ES 产品更新 极限科技

2023-07-22:一共有n个项目,每个项目都有两个信息, projects[i] = {a, b}, 表示i号项目做完要a天,但是当你投入b个资源,它就会缩短1天的时间, 你一共有k个资源,你的目

福大大架构师每日一题

福大大架构师每日一题

AI开发软件环境

timerring

AI

Java大数字运算之BigDecimal 类

java易二三

Java 程序员 程序猿

基础软件加速自主创新,openGauss成就业务“新箭头”

daydayup

opengauss

ZBC Staking 即将开启,全新利好来袭

鳄鱼视界

李士福:openGauss 自驾驶数据库内核在AI领域的探索和创新

daydayup

opengauss

openGauss:共建数据库根社区,打造开源数据库核心竞争力

daydayup

opengauss

AI开发硬件基础经验

timerring

AI

Python Web框架UliWeb开发进展_Ruby_高昂_InfoQ精选文章