24
Uliweb- Uliweb- 快快快快快 快快快快快 Python Web Framework Python Web Framework Limodou ([email protected]) 2009 年 8 年 16 年

Uliweb 快速易用的Python Web Framework

  • Upload
    modou-li

  • View
    2.268

  • Download
    13

Embed Size (px)

DESCRIPTION

Introduce an easy use python web framework -- Uliweb

Citation preview

Page 1: Uliweb 快速易用的Python Web Framework

Uliweb-Uliweb- 快速易用的快速易用的Python Web FrameworkPython Web Framework

Limodou ([email protected])2009 年 8 月 16日

Page 2: Uliweb 快速易用的Python Web Framework

内容提要内容提要

说说那过去的事Web开发那些事拨云见日重用性是 No.1方便、还是方便层次不足示例展望资源Q&A

Page 3: Uliweb 快速易用的Python Web Framework

说说那过去的事说说那过去的事

我的 Python经历:最早是 PHP,后来是 Zope,然后是 CherryPy, Karrigell, Django , Web2py 。 TurboGears, Pylons了解一点,没有真正用过。

牢骚:◦Django:模板(功能及配置), URL , APP的重用不够, DRY的矛盾哲学 (python-cn邮件列表的大讨论 )

◦Web2py:模板, URL , APP的重用,向前兼容的哲学

Page 4: Uliweb 快速易用的Python Web Framework

WebWeb开发那些事开发那些事

简单的Web开发,做网站复杂的Web开发,做应用主要功能:

◦ Request 和 Response的处理◦模板◦ URL映射◦数据加工: ORM,文本,静态文件,其它◦部署

其它功能:◦用户认证(配置文件,数据库, LDAP , OpenID等)◦用户定制( Theme,布局,插件,管理)◦ API◦ Ajax◦桌面化◦与其它应用集成

Page 5: Uliweb 快速易用的Python Web Framework

为什么有这么多的框架?为什么有这么多的框架?

哲学不同每一种框架代表一种哲学,一种思维方式,一种使用习惯

有许多的模块可以完成组成Web框架的不同功能,使得构建框架变得相对容易

框架之间的差异一方面是功能,组件的差异,但更重要的是哲学,思维,习惯的差异

Page 6: Uliweb 快速易用的Python Web Framework

拨云见日拨云见日

MVT型框架◦模板自动关联 (web2py-like)◦Middleware, WSGI-Middleware 支持◦扩展的Web2py模板 ( 支持 tag扩展, Django-like

Block)更完全的 APP重用

◦APP级别配置文件 (settings.ini)◦静态文件,模板定位◦APP管理功能

Hook系统简单的 URL映射通用功能:开发服务器 ( 自动重启 ), i18n支持,静态文件支持,命令行工具, Debug页面,简单的Admin

Page 7: Uliweb 快速易用的Python Web Framework

重用性是重用性是 No.1No.1

可重用元素:模板、 View、静态文件、Model 、Form…App

Uliweb中的 App可以是任何东西:模板, View,静态文件,配置参数。模板和静态文件可以做为一个整体来使用

独特的 App的依赖处理机制 (config.ini)所做努力:

◦模板的搜索◦静态文件的处理◦settings.ini的合并

Page 8: Uliweb 快速易用的Python Web Framework

Django APPDjango APP 的不足的不足

不支持 APP级别的静态文件没有 APP级别的配置文件只能共享Model, View

Page 9: Uliweb 快速易用的Python Web Framework

Web2py APPWeb2py APP 的不足的不足

APP 是 Application级别的共享,很难实现代码级别共享,是运行和部署的最小单位

Uliweb 和 Django的是开发的最小单位

Page 10: Uliweb 快速易用的Python Web Framework

方便、还是方便方便、还是方便 ..

Web2py-like view函数:@expose(‘/index’)def index(): print request return {}

◦模板自动套用,必须返回一个 dict对象◦内置一些全局变量和web2py类似,如: request,

response◦expose()来实现 URL 与 view函数的映射。◦url_for(func_name)可以反向得到 view对应的 URL◦减少了不必要的 import

Page 11: Uliweb 快速易用的Python Web Framework

方便、还是方便方便、还是方便 ....

Web2py-like Template◦可以直接嵌入 Python代码,不需要考虑缩近,但在结束时要使用 {{pass}}

◦支持 Python代码与 HTML代码混合◦支持 django-like block功能◦支持自定义 tag

Page 12: Uliweb 快速易用的Python Web Framework

方便、还是方便方便、还是方便……

简单的 URL映射,使用 expose()◦@expose(‘/static/<path:filename>’)◦@expose(‘/archieve/<int:year>/<int:mon>’)◦@expose(‘/user/<username>’)◦@expose(‘/page’, default={‘pageno’:1})◦REST:@expose(‘/view’, methods=[‘GET’])

类 urls.py的使用方式

Page 13: Uliweb 快速易用的Python Web Framework

配置管理配置管理

Settings.ini( 类 ini , Python语法 )

Django使用 settings.py,不方便程序处理Web2py讲究 0 配置

Page 14: Uliweb 快速易用的Python Web Framework

AdminAdmin 界面界面

Page 15: Uliweb 快速易用的Python Web Framework

层次层次

Uliweb是一个相对基础的框架简单的应用可以基于 Uliweb直接进行开发复杂的开发应该是在 Uliweb 上的定制,以此为基础进行二次开发◦平台维护人员◦应用开发人员

Page 16: Uliweb 快速易用的Python Web Framework

造轮之路-造你的轮,让别人说去吧造轮之路-造你的轮,让别人说去吧

喜欢对原模块改动太大不被人接受响应太慢有更好的实现更容易了解细节,真正掌握学习主义者(不是拿来主义)

Page 17: Uliweb 快速易用的Python Web Framework

UliwebUliweb 中的“轮子”中的“轮子”

Ini处理 pyini模板处理 templateLockfile weto/lockfileSession wetoORM ormForm formI18n i18n

Page 18: Uliweb 快速易用的Python Web Framework

AppApp介绍介绍

AdminSessionCacheOrmTemplate (内容动态组装 )StaticfilesUploadAuthi18n

Page 19: Uliweb 快速易用的Python Web Framework

不足不足

ORM还不完善,相关的数据库重建,迁移等性能没有经过验性没有 Killer的应用用户少

Page 20: Uliweb 快速易用的Python Web Framework

命令行命令行

makeprojectmakeapprunserverrunadmin命令收集系统 app/commandscall <command>i18nexportstatic

Page 21: Uliweb 快速易用的Python Web Framework

示例示例

Hello, UliwebUserman(uliweb-tests 中 )GuestBook(uliweb-tests 中 )

Page 22: Uliweb 快速易用的Python Web Framework

展望展望

基于 Uliweb 的 CMS 二次开发系统,加入常见的应用元素

Uliweb 的 app更方便的发布与安装发布正式的 Uliweb 版本丰富而准确的文档

Page 23: Uliweb 快速易用的Python Web Framework

资源资源

主页: http://code.google.com/p/uliweb文档: http://uliwebproject.appspot.com列表:

http://groups.google.com/group/uliwebLearning Uliweb:

http://sites.google.com/site/learninguliweb测试代码:

http://code.google.com/p/uliweb-tests

Page 24: Uliweb 快速易用的Python Web Framework

Q&AQ&A

请大家提问。