Enviar búsqueda
Cargar
Uliweb框架思想与编程
•
1 recomendación
•
542 vistas
modou li
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 61
Descargar ahora
Descargar para leer sin conexión
Recomendados
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
zany_hui
IoTDB Quick Start
IoTDB Quick Start
JialinQiao
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Justin Lin
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
Justin Lin
PHPUnit 入門介紹
PHPUnit 入門介紹
Jace Ju
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Justin Lin
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
Spring 2.0 技術手冊導讀
Spring 2.0 技術手冊導讀
Justin Lin
Recomendados
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
zany_hui
IoTDB Quick Start
IoTDB Quick Start
JialinQiao
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Justin Lin
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
Justin Lin
PHPUnit 入門介紹
PHPUnit 入門介紹
Jace Ju
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Justin Lin
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
Spring 2.0 技術手冊導讀
Spring 2.0 技術手冊導讀
Justin Lin
RESTful API Design
RESTful API Design
Amigo 陳兆祥
Osgi Intro
Osgi Intro
Ching Yi Chan
Lucene 全文检索实践
Lucene 全文检索实践
yiditushe
Erlang Practice
Erlang Practice
litaocheng
中纺科技安装实施文档
中纺科技安装实施文档
liangsuilong
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
J2ee面试知识
J2ee面试知识
yiditushe
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
六步教你学会简单Rmi
六步教你学会简单Rmi
yiditushe
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
imacat .
Uliweb设计分享
Uliweb设计分享
modou li
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
Spring 2.0 技術手冊第二章 - Spring 入門
Spring 2.0 技術手冊第二章 - Spring 入門
Justin Lin
Php
Php
paitoubing
Web development with zend framework
Web development with zend framework
thinkinlamp
Django
Django
Tao He
advanced introduction to codeigniter
advanced introduction to codeigniter
Bo-Yi Wu
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
01.uliweb介绍
01.uliweb介绍
modou li
Más contenido relacionado
La actualidad más candente
RESTful API Design
RESTful API Design
Amigo 陳兆祥
Osgi Intro
Osgi Intro
Ching Yi Chan
Lucene 全文检索实践
Lucene 全文检索实践
yiditushe
Erlang Practice
Erlang Practice
litaocheng
中纺科技安装实施文档
中纺科技安装实施文档
liangsuilong
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
J2ee面试知识
J2ee面试知识
yiditushe
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
六步教你学会简单Rmi
六步教你学会简单Rmi
yiditushe
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
imacat .
Uliweb设计分享
Uliweb设计分享
modou li
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
Spring 2.0 技術手冊第二章 - Spring 入門
Spring 2.0 技術手冊第二章 - Spring 入門
Justin Lin
Php
Php
paitoubing
Web development with zend framework
Web development with zend framework
thinkinlamp
Django
Django
Tao He
advanced introduction to codeigniter
advanced introduction to codeigniter
Bo-Yi Wu
La actualidad más candente
(20)
RESTful API Design
RESTful API Design
Osgi Intro
Osgi Intro
Lucene 全文检索实践
Lucene 全文检索实践
Erlang Practice
Erlang Practice
中纺科技安装实施文档
中纺科技安装实施文档
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
J2ee面试知识
J2ee面试知识
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
六步教你学会简单Rmi
六步教你学会简单Rmi
CRUD 綜合運用
CRUD 綜合運用
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
Uliweb设计分享
Uliweb设计分享
CRUD 綜合運用
CRUD 綜合運用
Spring 2.0 技術手冊第二章 - Spring 入門
Spring 2.0 技術手冊第二章 - Spring 入門
Php
Php
Web development with zend framework
Web development with zend framework
Django
Django
advanced introduction to codeigniter
advanced introduction to codeigniter
Destacado
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
01.uliweb介绍
01.uliweb介绍
modou li
04.uliweb更多话题介绍
04.uliweb更多话题介绍
modou li
02.python基础
02.python基础
modou li
Uliweb比较与实践 2013
Uliweb比较与实践 2013
modou li
03.python工作环境
03.python工作环境
modou li
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
03.uliweb开发进阶
03.uliweb开发进阶
modou li
01.python介绍
01.python介绍
modou li
Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Framework
modou li
02.uliweb开发入门
02.uliweb开发入门
modou li
Algebra I Warm-ups
Algebra I Warm-ups
guest3ce8ee0
Or Sam Opiates & Opioids 04 19 2011
Or Sam Opiates & Opioids 04 19 2011
bardlomlarry
Pregnancy with beta thalassemia
Pregnancy with beta thalassemia
mamuni00g2
MANAGEMENT OF HYPEREMESIS GRAVIDARUM
MANAGEMENT OF HYPEREMESIS GRAVIDARUM
mamuni00g2
Loreal case study
Loreal case study
Bhasker Rajan
HR practices in infosys
HR practices in infosys
Bhasker Rajan
Programme du PLFI 2013
Programme du PLFI 2013
Office de Tourisme Val de Garonne
Stratégie digital-cci-rennes-btob-btoc-2013
Stratégie digital-cci-rennes-btob-btoc-2013
Gregoire Lockhart
"Génération Y, de A à Z" par MEC Paris
"Génération Y, de A à Z" par MEC Paris
agenceMEC
Destacado
(20)
Python面向对象开发基础篇
Python面向对象开发基础篇
01.uliweb介绍
01.uliweb介绍
04.uliweb更多话题介绍
04.uliweb更多话题介绍
02.python基础
02.python基础
Uliweb比较与实践 2013
Uliweb比较与实践 2013
03.python工作环境
03.python工作环境
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
03.uliweb开发进阶
03.uliweb开发进阶
01.python介绍
01.python介绍
Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Framework
02.uliweb开发入门
02.uliweb开发入门
Algebra I Warm-ups
Algebra I Warm-ups
Or Sam Opiates & Opioids 04 19 2011
Or Sam Opiates & Opioids 04 19 2011
Pregnancy with beta thalassemia
Pregnancy with beta thalassemia
MANAGEMENT OF HYPEREMESIS GRAVIDARUM
MANAGEMENT OF HYPEREMESIS GRAVIDARUM
Loreal case study
Loreal case study
HR practices in infosys
HR practices in infosys
Programme du PLFI 2013
Programme du PLFI 2013
Stratégie digital-cci-rennes-btob-btoc-2013
Stratégie digital-cci-rennes-btob-btoc-2013
"Génération Y, de A à Z" par MEC Paris
"Génération Y, de A à Z" par MEC Paris
Similar a Uliweb框架思想与编程
Spring 2.x 中文
Spring 2.x 中文
Guo Albert
Workshop Sutdio3(1)
Workshop Sutdio3(1)
wangjiaz
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
Kejun Zhang
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
Structs2簡介
Structs2簡介
catonchuang
Javascript autoload
Javascript autoload
jay li
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
中远公司 Java培训资料
中远公司 Java培训资料
yiditushe
Node js实践
Node js实践
myzykj
A
A
guested19a2
A
A
guested19a2
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
yiditushe
Java 1(Java概述)
Java 1(Java概述)
xzdbd
JQuery 学习
JQuery 学习
cssrain
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
Anthony Chen
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
koji lin
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
Java华为面试题
Java华为面试题
yiditushe
Similar a Uliweb框架思想与编程
(20)
Spring 2.x 中文
Spring 2.x 中文
Workshop Sutdio3(1)
Workshop Sutdio3(1)
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Structs2簡介
Structs2簡介
Javascript autoload
Javascript autoload
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
中远公司 Java培训资料
中远公司 Java培训资料
Node js实践
Node js实践
A
A
A
A
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
Java 1(Java概述)
Java 1(Java概述)
JQuery 学习
JQuery 学习
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
Java华为面试题
Java华为面试题
Uliweb框架思想与编程
1.
Limodou@gmail.com 2011年11月27日
2.
Zope 2
2000.4 pyrecord.freezope.net,评论与翻译 PyBlosxom 2004.9 Blog程序,补丁未接受 Snakelets 2004.10 源码学习 Karrigell 2005.3年 源码学习 CherryPy 2005.3源码学习 Django 2005.7 贡献代码, db_dump Web2py 2008.3 贡献代码 GAE 2008.4 制做网站,包括Uliwebproject网站 Uliweb 2008.5
3.
初识 Uliweb
4.
Uliweb是 MVT型框架
5.
WSGI
6.
Web Server (Apache, Nginx) 请求 应答 静态文件 Dispatcher
WSGI StaticFilesMiddleware WSGI DebugApplication WSGI 静态文件处理, 需加入staticfiles app 静态文件 调试界面 URL 处理 Middleware 处理 View 处理 模板处理 业务处理
7.
8.
Request & Response
9.
View
10.
Template
11.
TestProject App1 App2 uliweb.contr ib.staticfiles uliweb.contr ib.orm static
templates apps settings.ini views.py models.py settings.ini
12.
安装: >svn co
http://uliweb.googlecode.com/svn/trunk/ uliweb >setup.py develop Demo >uliweb makeproject TestProject >cd TestProject >uliweb makeapp Hello >uliweb runserver 访问 http://localhost:8000
13.
创建APP (makeapp name) 编辑views.py 设定URL 编写View代码 设计Template ORM处理
Form处理 功能性开发
14.
修改settings.ini 配置apps 其它的参数 dispatch处理 配置性开发
15.
开发服务器 uliweb runserver or uliweb develop
16.
进阶 Uliweb
17.
外部模块 Werkzeug SqlAlchemy SimpleJson(2.6自带)
18.
Werkzeug 作者:Armin Ronacher 作品:Jinjia, Flask,
pygments, Zine,Sphinx 在Uliweb中的应用: Request, Response Dispatcher URL处理(expose, url_for) DebugApplication StaticFilesMiddleware 命令行处理结构 开发服务器,自动重启(我做了优化,可以识别象ini的变化)
19.
SqlAlchemy (Michael Bayer: Mako) 在Uliweb中的应用
ORM orm模块 uliweb.contrib.orm APP
20.
开始 Manage.py中执行make_application()传入apps_dir 和include_apps等参数 SimpleFrame.py初始化Dispatcher类 Dispatcher:根据settings.ini和include_apps获得 所有app的列表,保存为self.apps Dispatcher:根据self.apps,收集所有的 settings.ini和views*.py文件(views*.py并不导 入) Dispatcher:根据settings列表,依次导入 settings.ini到settings对象中。同时 apps/settings.ini最后导入 Dispatcher:导入所有app(即调用所有 app/__init__.py),激活app的初始化处理 Dispatcher:导入所有view*.py文件,收集expose中 定义的URL 结束
21.
settings.ini
22.
#coding=UTF-8 [GLOBAL] DEBUG = True INSTALLED_APPS
= [ 'uliweb.contrib.staticfiles', ] MIDDLEWARE_CLASSES = [ 'uliweb.orm.middle_transaction.TransactionMiddle' ] TIME_ZONE = 'UTC'
23.
Model
24.
class Requirement(Model): req_id =
Field(CHAR, verbose_name='编号', max_length=12, required=True, unique=True, index=True) year = Field(int, verbose_name='年度', required=True, choices=get_var('PARA/YEAR'), index=True, default=lambda :datetime.date.today().year) title = Field(str, verbose_name='标题', max_length=255, required=True) description = Field(TEXT, verbose_name='描述') begin_date = Field(datetime.date, verbose_name='阶段开始时间') creator = Reference('user', verbose_name='创建者', collection_name='creator_requirements') created_date = Field(datetime.date, verbose_name='创建时间', auto_now_add=True) systems = ManyToMany('system', verbose_name='执行系统', collection_name='sys_requirements')
25.
class User(Model): username =
Field(CHAR, max_length=20) year = Field(int) user = User(username='limodou', year=36) user.save() user = User.get(5) user = User.get(User.c.id==5) user.uesrname = 'user‘ user.save() user.delete()
26.
User.all() User.filter(User.c.year > 18) User.all().filter(User.c.year>18).count() User.delete(User.c.year<18) User.count(User.c.year<18)
27.
apps/settings.ini [ORM] CONNECTION = 'sqlite:///database.db' DEBUG_LOG
= False uliweb/contrib/orm/settings.ini [ORM] DEBUG_LOG = False AUTO_CREATE = True CONNECTION = 'sqlite://'
28.
Uliweb ORM 可以自动建表
29.
不喜欢Uliweb ORM? 发挥你的创造性吧!
30.
View
31.
#coding=utf-8 from uliweb import
expose @expose('/') def index(): return '<h1>Hello, Uliweb</h1>'
32.
@expose(‘/static/<path:filename>’) @expose(‘/archieve/<int:year>/<int:m on>’) @expose(‘/user/<username>’) @expose(‘/page’, default={‘pageno’:1}) @GET(‘/user/<username>’) @POST(‘/user/<username>/save’)
33.
参数与expose中定义的一致,如: @expose(‘/’) def index(): return
{} @expose(‘/user/<username>’) def user_view(username): return {}
34.
字典,根据view函数名,自动 套动模板(来源于web2py) Response对象,直接返回 其它对象,使用str(obj)处理后, 转换为Response返回
35.
在直接View函数中有一些可以直接使用的全局变 量: request,
response, application, settings, error, redirect, json等 当在非直接View函数中想使用时,可以: import uliweb uliweb.request 或 from uliweb import request
36.
模板中 {{=url_for(‘Hello.views.index’)}} ==
‘/index’ View函数中 url_for(‘Hello.views.index’) url_for(index) 参数传递 url_for(‘index’, pageno=0)
37.
Template
38.
{{=var}} {{python code}} {{<< htmlcode}} {{if
user=='admin':}} <p>Welcome</p> {{else:}} <a href="/login">Login</a> {{pass}} {{block content}}<div>default content</div>{{end}} {{embed var}} {{include “template.html”}}
39.
高阶 Uliweb
40.
config.ini [DEFAULT] REQUIRED_APPS =
['uliweb.contrib.staticfiles', 'uliweb.contrib.template']
41.
sql 显示建表时的sql语句
reset 重建表 dump 卸出数据 load 装入数据 syncdb 自动创建表 dbinit 执行初始化脚本
42.
配置:settings.ini [MODELS] system =
'systems.models.System‘ 导入: from uliweb.orm import get_model system = get_model(‘system’)
43.
可以将view方法拆分为: views_xx.py, views_yy.py 或放在views目录下的xx.py, yy.py
44.
__begin__ & __end__
45.
模块:uliweb.core.dispatch 方法: bind,
call, get 示例 dispatch.call(self.__class__, 'post_save', instance=self, created=created, data=old, old_data=self._old_values) @dispatch.bind(‘post_save’) def post_save(sender, instance, created, data, old_data): print sender, instance, created, data, old_data
46.
配置(settings.ini INSTALLED_APPS) ‘uliweb.contrib.template’
模板语法 {{use “jquery”}} {{link “jquery.1.4.4.js”}}
47.
@expose(‘/index’, name=‘index’) url_for(‘index’)
48.
静态文件处理 uliweb exportstitic
49.
i18n处理
50.
代码中: from uliweb.i18n
import ugettext_lazy as _ _('Save') 模板中: {{=_(‘Save’)}} 命令行 i18n: extract i18n message catalog form app or all apps -a, --appname string --project --apps --core -l, --locale string en
51.
Settings.ini [I18N] LANGUAGE_CODE =
'en‘ 其它 支持LazyTranslate 支持从浏览器的HTTP头判断需要的语言种类
52.
总结
53.
目标
54.
最大可能的提高复用性 分布式结构,集中使用 编写尽可能简单 创建易于使用的app 鼓励把Uliweb作为二次开发平台
55.
特点
56.
分布式结构,集中视图,工具辅助 App方式的项目组织方式
每个app相对完整,可以包括:静态资源,模板,配置 使用上,静态资源,模板,配置是一个整体 App有依赖功能 功能完整:MVT, i18n, auth, cache, session等 提供功能相对完整的ORM,并且orm可配置化 View方法可以自动套用模板 request, response,application, settings等可以直接在view方 法中使用,也可能导入使用 模板可以嵌入python代码,不用关心缩近,只要处理好 pass Use,link Tag url采用类正则式方式,更容易写。并提供命名方式和反向 url功能
57.
我做了什么?
58.
SimpleFrame Dispatch
Template(修改) Weto(cache, session) I18n ORM Form Generic pyini
59.
相关资源
60.
项目主页: http://code.google.com/p/uliweb
参考项目: http://code.google.com/p/weflow 宣传网站: http://uliwebproject.appspot.com 入门文档: 《Learning Uliweb》
61.
FAQ
Descargar ahora