QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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:5310971
用户头像

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

关注

评论

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

周报 01|多点分享,少点创作

强劲九

学习 读书

​成功的人,都是 “狠角色”

非著名程序员

程序员 提升认知 成功学 自律

Flutter引擎源码解读-Flutter是如何在iOS上运行起来的

Geek_70xtik

flutter ios 移动应用 跨平台 dart

初步了解MyBatis

Java收录阁

mybatis

用行动解决情绪,情绪永远是累赘

熊斌

情绪控制 团队协作

GroupBy 用法的三重境界,面试终结者

Hyun

数据库 sql 大数据 性能优化 数据分析

C++中glog源码剖析以及如何设计一个高效 log模块

泰伦卢

c++ 编程语言

高仿瑞幸小程序 01 初建项目,引入Vant Weapp

曾伟@喵先森

小程序 微信小程序 大前端 vant

Kafka系列第1篇:Kafka是什么?它能干什么?

z小赵

大数据 kafka 推荐 实时计算

Windows Terminal添加右键菜单

simon

Windows Terminal 右键菜单 终端 开发者工具 命令行

爬虫(108)Python 3.8的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

志学Python

python 爬虫 python3.x python升级

Kafka系列第2篇:安装测试

z小赵

大数据 kafka 推荐 实时计算

MyBatis核心功能介绍

Java收录阁

mybatis

每日一道python面试题 - Python的函数参数传递

志学Python

Python 面试 爬虫 python 爬虫 python3.x

这里有一个慢 SQL 查询等你来优化

程序猿石头

MySQL 数据库 性能优化 后端

太极宗师与华晨宇

伯薇

水平思考力 电视剧 综艺节目 歌手

如何优雅的接收正在运行古董代码?

冰临深渊

项目管理 架构

关于5G RCS的产品猜想

机器鸟

Go语言获取程序各类资源的绝对路径的方法

良少

Python 路径 动态 绿色 Go 语言

什么是 MQ ?

itfinally

系统设计 MQ

Hive 中的 GroupBy, Distinct 和 Join

tkanng

sql 大数据 hadoop hive

周日福利来了

志学Python

Python 福利 python教程 python视频教程

运维常见问题及排查思路

编程随想曲

运维

爬虫(107)Python 3.7的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

志学Python

Python 最佳实践 python 爬虫 python3.7 python升级

如何写排版优雅简洁的文章?

池建强

写作 排版

我愿沉迷于学习,无法自拔(二)

孙瑜

深度思考 个人成长

目标:2020年学会写文章

wiflish

每天打卡python面试题 - 在一行中捕获多个异常(块除外)

志学Python

Python 面试 python 爬虫 python3.7

3NF建模&维度建模

常海峰

kettle(Pentaho Data Integration) 使用"最佳"实践

稻草鸟人

Java kettle

游戏夜读 | 2020周记(4.3-4.10)

game1night

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