uliweb 快速易用的python web framework
DESCRIPTION
Introduce an easy use python web framework -- UliwebTRANSCRIPT
Uliweb-Uliweb- 快速易用的快速易用的Python Web FrameworkPython Web Framework
Limodou ([email protected])2009 年 8 月 16日
内容提要内容提要
说说那过去的事Web开发那些事拨云见日重用性是 No.1方便、还是方便层次不足示例展望资源Q&A
说说那过去的事说说那过去的事
我的 Python经历:最早是 PHP,后来是 Zope,然后是 CherryPy, Karrigell, Django , Web2py 。 TurboGears, Pylons了解一点,没有真正用过。
牢骚:◦Django:模板(功能及配置), URL , APP的重用不够, DRY的矛盾哲学 (python-cn邮件列表的大讨论 )
◦Web2py:模板, URL , APP的重用,向前兼容的哲学
WebWeb开发那些事开发那些事
简单的Web开发,做网站复杂的Web开发,做应用主要功能:
◦ Request 和 Response的处理◦模板◦ URL映射◦数据加工: ORM,文本,静态文件,其它◦部署
其它功能:◦用户认证(配置文件,数据库, LDAP , OpenID等)◦用户定制( Theme,布局,插件,管理)◦ API◦ Ajax◦桌面化◦与其它应用集成
为什么有这么多的框架?为什么有这么多的框架?
哲学不同每一种框架代表一种哲学,一种思维方式,一种使用习惯
有许多的模块可以完成组成Web框架的不同功能,使得构建框架变得相对容易
框架之间的差异一方面是功能,组件的差异,但更重要的是哲学,思维,习惯的差异
拨云见日拨云见日
MVT型框架◦模板自动关联 (web2py-like)◦Middleware, WSGI-Middleware 支持◦扩展的Web2py模板 ( 支持 tag扩展, Django-like
Block)更完全的 APP重用
◦APP级别配置文件 (settings.ini)◦静态文件,模板定位◦APP管理功能
Hook系统简单的 URL映射通用功能:开发服务器 ( 自动重启 ), i18n支持,静态文件支持,命令行工具, Debug页面,简单的Admin
重用性是重用性是 No.1No.1
可重用元素:模板、 View、静态文件、Model 、Form…App
Uliweb中的 App可以是任何东西:模板, View,静态文件,配置参数。模板和静态文件可以做为一个整体来使用
独特的 App的依赖处理机制 (config.ini)所做努力:
◦模板的搜索◦静态文件的处理◦settings.ini的合并
Django APPDjango APP 的不足的不足
不支持 APP级别的静态文件没有 APP级别的配置文件只能共享Model, View
Web2py APPWeb2py APP 的不足的不足
APP 是 Application级别的共享,很难实现代码级别共享,是运行和部署的最小单位
Uliweb 和 Django的是开发的最小单位
方便、还是方便方便、还是方便 ..
Web2py-like view函数:@expose(‘/index’)def index(): print request return {}
◦模板自动套用,必须返回一个 dict对象◦内置一些全局变量和web2py类似,如: request,
response◦expose()来实现 URL 与 view函数的映射。◦url_for(func_name)可以反向得到 view对应的 URL◦减少了不必要的 import
方便、还是方便方便、还是方便 ....
Web2py-like Template◦可以直接嵌入 Python代码,不需要考虑缩近,但在结束时要使用 {{pass}}
◦支持 Python代码与 HTML代码混合◦支持 django-like block功能◦支持自定义 tag
方便、还是方便方便、还是方便……
简单的 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的使用方式
配置管理配置管理
Settings.ini( 类 ini , Python语法 )
Django使用 settings.py,不方便程序处理Web2py讲究 0 配置
AdminAdmin 界面界面
层次层次
Uliweb是一个相对基础的框架简单的应用可以基于 Uliweb直接进行开发复杂的开发应该是在 Uliweb 上的定制,以此为基础进行二次开发◦平台维护人员◦应用开发人员
造轮之路-造你的轮,让别人说去吧造轮之路-造你的轮,让别人说去吧
喜欢对原模块改动太大不被人接受响应太慢有更好的实现更容易了解细节,真正掌握学习主义者(不是拿来主义)
UliwebUliweb 中的“轮子”中的“轮子”
Ini处理 pyini模板处理 templateLockfile weto/lockfileSession wetoORM ormForm formI18n i18n
AppApp介绍介绍
AdminSessionCacheOrmTemplate (内容动态组装 )StaticfilesUploadAuthi18n
不足不足
ORM还不完善,相关的数据库重建,迁移等性能没有经过验性没有 Killer的应用用户少
命令行命令行
makeprojectmakeapprunserverrunadmin命令收集系统 app/commandscall <command>i18nexportstatic
示例示例
Hello, UliwebUserman(uliweb-tests 中 )GuestBook(uliweb-tests 中 )
展望展望
基于 Uliweb 的 CMS 二次开发系统,加入常见的应用元素
Uliweb 的 app更方便的发布与安装发布正式的 Uliweb 版本丰富而准确的文档
资源资源
主页: 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
Q&AQ&A
请大家提问。