SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Uliweb设计分享




             limodou@gmail.com
             2012-6-14
内容介绍

 近期变化
 技术特点
 未来展望




         CCB
Uliweb近期变化(一)

 目前最新版本是0.1.2
 代码托管于 git
  https://github.com/limodou/uliweb
 和 code.google.com
  http://code.google.com/p/uliweb
 plugs 最新版本是 0.1.1
  https://github.com/limodou/plugs
 独立的文档项目
  https://github.com/limodou/uliweb-doc
 plugs中提供bootstrap和大量jquery插件



                                          CCB
Uliweb近期变化(二)

 ORM优化:多数据库支持,及命令行支持及改造,短
  连接支持
 Alembic支持
  http://pypi.python.org/pypi/alembic
 Generic优化 増加GenericReference,
  GenericRelation
 对云平台部署的支持:GAE, dotCloud, SAE, BAE,
  Heroku
 upload优化,支持X-SENDFILE处理方式
 命令行优化:find, export, exportstatic, sqldoc
 文档补充
 Plugs组件的丰富
 http://uliweb.clkg.org 和 uliwebzone项目    CCB
Uliweb的定位

 Web开发框架
 解决前后端数据交互,具备一定的业务处理能力
 提高开发效率,充分考虑复用的处理
 提供一致的定制方式,将经验转为有效的代码




                          CCB
Uliweb项目如何组织

 APP方式,满足一定条件的python包即可
 自包含:配置信息,Model, View, 资源等
 APP依赖
 减少集中配置项




   简化APP的安装过程,方便重用
                              CCB
典型的目录结构

project/
   apps/
     settings.ini
     local_settings.ini
     app1/
         templates/
         static/
         views.py
         models.py
         settings.ini
     app2/
   wsgi_handler.py
                          CCB
Uliweb的配置文件处理

 采用文本形式的配置文件
 基本样式为:
 [GLOBAL]
 INSTALLED_APPS = [
   ‘uliweb.contrib.orm’
 ]
 重名变量的处理(可变的自动合并,不可变的替換)
 <= 强制替換
 Settings.ini处理顺序:
    Default_settings.ini, app/settings.ini,
     project/settings.ini, project/local_settings.ini


                提供标准的本地配置支持
                                                        CCB
如何解决功能可替換?-- 配置解耦

 可配置内容:APP自已的配置项,URL,BINDS,
  FUNCTIONS, DECORATORS, Model

 举例:FUNCTIONS
  [FUNCTIONS]
  flash = 'uliweb.contrib.flashmessage.flash‘

  from uliweb import functions
  functions.flash(‘message’)




    通过配置解决定义与使用的耦合
                                                CCB
模板与静态资源

 从web2py派生出来,増加{{block}}等功能,并反
  馈给了web2py
 自定义Tag,包括块Block
 可以直接嵌入Python代码
 支持环境注入
 uliweb.contrib.template提供{{use}}和{{link}}
  的支持,可以方便引用一组css和js,并且支持依赖。
 做到了开发和部署的分离,APP资源的复用。
 模板替換—后定义的模板将覆盖在前定义的模板
 find来查找
 先编译后使用,可以有条件的缓存中间编译结果

                                         CCB
UliORM的演变

 2008,基于geniusql开发。想基于一个基于的SQL
  的库来自已封装ORM。
 考查了许多的ORM库,参考了GAE的datastore库
 同年,将底层代码迁移到了SQLAlchemy。不断优化:
    増加OneToOne, ManyToMany, Reference关系
    増加相应的命令行工具
    多数库支持
    短连接支持
    。。。
 可以自动生成管理界面,类Django
 Model上进行表级操作,instance上进行记录级操作


                                           CCB
可配置化ORM

 提供在settings.ini中对Model进行配置
  [MODELS]
  user = 'uliweb.contrib.auth.models.User'
 在Model定义中可以使用字符串方式来引用Model
 提供get_model()来获得Model类
 在settings中后定义的可以替換前面定义的Model
 去除象from xxx import yyy, import yyy这种
  hard coding
 有它使用的限制




                                             CCB
如何解决CRUD--Generic

 uliweb.utils.generic
 ListView, AddView, EditView, DeleteView,
  DetailView
 可以自动生成相应的界面和Form代码,支持json
 配置信息可放在Model中,也可以通过参数传递
 减少继承,大量使用参数和回调
     django吐槽
      http://lukeplant.me.uk/blog/posts/djangos-cbvs-
      were-a-mistake/
 对处理过程进行封装(流程)




                                                        CCB
Generic示例一

#coding=utf-8
from uliweb import expose
from uliweb.orm import get_model

@expose('/')
class BlogView(object):
   def __init__(self):
      self.model = get_model('blog')

  @expose('')
  def list(self):
    from uliweb.utils.generic import ListView

     def title(value, obj):
       return obj.get_url()

     view = ListView(self.model,
        fields_convert_map={'title':title},
        pagination=False)
     return view.run()

                                                CCB
Generic示例二

def add(self):
     from uliweb.utils.generic import AddView

    def get_url(id):
       return url_for(BlogView.view, id=id)

    view = AddView(self.model, ok_url=get_url)
    return view.run()

  def view(self, id):
     from uliweb.utils.generic import DetailView

    obj = self.model.get_or_notfound(int(id))
    view = DetailView(self.model, obj=obj)
    return view.run()

                                                   CCB
Generic示例三

def edit(self, id):
     from uliweb.utils.generic import EditView

    obj = self.model.get_or_notfound(int(id))
    view = EditView(self.model,
       ok_url=url_for(BlogView.view, id=int(id)),
       obj=obj)
    return view.run()

  def delete(self, id):
     from uliweb.utils.generic import DeleteView

    obj = self.model.get_or_notfound(int(id))
    view = DeleteView(self.model, obj=obj,
       ok_url=url_for(BlogView.view, id=int(id)),
       use_delete_field='deleted')
    return view.fun()

                                                    CCB
未来展望

 増加Admin功能,方便快速开发
 重写Develop功能
 増加CRUD的自动框架代码的生成
 増强exportstatic的自动合并处理
 加强约定化的处理,优化Generic功能
 更多与前端优秀的js库进行集成
 各组件的完善与扩充
 完善uliwebzone项目
 完善文档




                          CCB
CCB

Weitere ähnliche Inhalte

Was ist angesagt?

ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索Will Huang
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVCjeffz
 
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式Will Huang
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2yiming he
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)Will Huang
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Will Huang
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)Will Huang
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略Will Huang
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索Will Huang
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用luolonghao
 

Was ist angesagt? (20)

ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
2021laravelconftwslides10
2021laravelconftwslides102021laravelconftwslides10
2021laravelconftwslides10
 
2021laravelconftwslides8
2021laravelconftwslides82021laravelconftwslides8
2021laravelconftwslides8
 
Vue
VueVue
Vue
 
Berserk js
Berserk jsBerserk js
Berserk js
 
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
 
Vue ithome
Vue ithome Vue ithome
Vue ithome
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
 
宅學習 Firebase
宅學習 Firebase宅學習 Firebase
宅學習 Firebase
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)
使用 Angular 2 與 Firebase 實現 Serverless 網站架構 (JSDC.tw 2016)
 
Vue.js
Vue.jsVue.js
Vue.js
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用
 

Andere mochten auch

Trabajo p.n 1 nuevas tecnologias
Trabajo p.n 1 nuevas  tecnologiasTrabajo p.n 1 nuevas  tecnologias
Trabajo p.n 1 nuevas tecnologiasrolandoarevalo
 
федеральный закон "О господдержке инновационной деятельности в Российской фед...
федеральный закон "О господдержке инновационной деятельности в Российской фед...федеральный закон "О господдержке инновационной деятельности в Российской фед...
федеральный закон "О господдержке инновационной деятельности в Российской фед...UNOVA
 
SEO Training 2016 Search Engine Optimization Tutorials
SEO Training 2016  Search Engine Optimization TutorialsSEO Training 2016  Search Engine Optimization Tutorials
SEO Training 2016 Search Engine Optimization Tutorialsayman diab
 
Audiência Pública - Secretária de Saúde
Audiência Pública - Secretária de SaúdeAudiência Pública - Secretária de Saúde
Audiência Pública - Secretária de SaúdeJose Camara
 
Andrusov -kak_napolnit
Andrusov  -kak_napolnitAndrusov  -kak_napolnit
Andrusov -kak_napolnitUNOVA
 
PR Maintenance IONATOR
PR Maintenance IONATORPR Maintenance IONATOR
PR Maintenance IONATORprmaintenance
 

Andere mochten auch (9)

Actividad 4 castillo segura omar eduardo
Actividad 4 castillo segura omar eduardoActividad 4 castillo segura omar eduardo
Actividad 4 castillo segura omar eduardo
 
Trabajo p.n 1 nuevas tecnologias
Trabajo p.n 1 nuevas  tecnologiasTrabajo p.n 1 nuevas  tecnologias
Trabajo p.n 1 nuevas tecnologias
 
Media2
Media2Media2
Media2
 
Cuenstos y fabulas
Cuenstos y fabulasCuenstos y fabulas
Cuenstos y fabulas
 
федеральный закон "О господдержке инновационной деятельности в Российской фед...
федеральный закон "О господдержке инновационной деятельности в Российской фед...федеральный закон "О господдержке инновационной деятельности в Российской фед...
федеральный закон "О господдержке инновационной деятельности в Российской фед...
 
SEO Training 2016 Search Engine Optimization Tutorials
SEO Training 2016  Search Engine Optimization TutorialsSEO Training 2016  Search Engine Optimization Tutorials
SEO Training 2016 Search Engine Optimization Tutorials
 
Audiência Pública - Secretária de Saúde
Audiência Pública - Secretária de SaúdeAudiência Pública - Secretária de Saúde
Audiência Pública - Secretária de Saúde
 
Andrusov -kak_napolnit
Andrusov  -kak_napolnitAndrusov  -kak_napolnit
Andrusov -kak_napolnit
 
PR Maintenance IONATOR
PR Maintenance IONATORPR Maintenance IONATOR
PR Maintenance IONATOR
 

Ähnlich wie Uliweb设计分享

Kissy design
Kissy designKissy design
Kissy designyiming he
 
Backbone js and requirejs
Backbone js and requirejsBackbone js and requirejs
Backbone js and requirejsChi-wen Sun
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1modou li
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Wade Huang
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing江華 奚
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4twMVC
 
Uliweb比较与实践 2013
Uliweb比较与实践 2013Uliweb比较与实践 2013
Uliweb比较与实践 2013modou li
 
前端MVC之backbone
前端MVC之backbone前端MVC之backbone
前端MVC之backboneJerry Xie
 
[DCTPE2010] 如何開發 CCK 欄位模組
[DCTPE2010] 如何開發 CCK 欄位模組[DCTPE2010] 如何開發 CCK 欄位模組
[DCTPE2010] 如何開發 CCK 欄位模組Drupal Taiwan
 
掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001rainx1982
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展江華 奚
 
20131004 - Backbone js 介紹 by Bryan
20131004 - Backbone js  介紹 by Bryan20131004 - Backbone js  介紹 by Bryan
20131004 - Backbone js 介紹 by BryanLearningTech
 
Uliweb框架思想与编程
Uliweb框架思想与编程Uliweb框架思想与编程
Uliweb框架思想与编程modou li
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文banq jdon
 
Underscore
UnderscoreUnderscore
Underscorecazhfe
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xBo-Yi Wu
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Gelis Wu
 

Ähnlich wie Uliweb设计分享 (20)

Kissy design
Kissy designKissy design
Kissy design
 
Backbone js and requirejs
Backbone js and requirejsBackbone js and requirejs
Backbone js and requirejs
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
 
Uliweb比较与实践 2013
Uliweb比较与实践 2013Uliweb比较与实践 2013
Uliweb比较与实践 2013
 
前端MVC之backbone
前端MVC之backbone前端MVC之backbone
前端MVC之backbone
 
[DCTPE2010] 如何開發 CCK 欄位模組
[DCTPE2010] 如何開發 CCK 欄位模組[DCTPE2010] 如何開發 CCK 欄位模組
[DCTPE2010] 如何開發 CCK 欄位模組
 
I os 16
I os 16I os 16
I os 16
 
掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001掌星 移动互联网开发笔记-Vol001
掌星 移动互联网开发笔记-Vol001
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
20131004 - Backbone js 介紹 by Bryan
20131004 - Backbone js  介紹 by Bryan20131004 - Backbone js  介紹 by Bryan
20131004 - Backbone js 介紹 by Bryan
 
Uliweb框架思想与编程
Uliweb框架思想与编程Uliweb框架思想与编程
Uliweb框架思想与编程
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文
 
Underscore
UnderscoreUnderscore
Underscore
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
 

Mehr von modou li

04.uliweb更多话题介绍
04.uliweb更多话题介绍04.uliweb更多话题介绍
04.uliweb更多话题介绍modou li
 
03.uliweb开发进阶
03.uliweb开发进阶03.uliweb开发进阶
03.uliweb开发进阶modou li
 
01.uliweb介绍
01.uliweb介绍01.uliweb介绍
01.uliweb介绍modou li
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门modou li
 
03.python工作环境
03.python工作环境03.python工作环境
03.python工作环境modou li
 
02.python基础
02.python基础02.python基础
02.python基础modou li
 
01.python介绍
01.python介绍01.python介绍
01.python介绍modou li
 
Python面向对象开发基础篇
Python面向对象开发基础篇Python面向对象开发基础篇
Python面向对象开发基础篇modou li
 
Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web FrameworkUliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Frameworkmodou li
 

Mehr von modou li (9)

04.uliweb更多话题介绍
04.uliweb更多话题介绍04.uliweb更多话题介绍
04.uliweb更多话题介绍
 
03.uliweb开发进阶
03.uliweb开发进阶03.uliweb开发进阶
03.uliweb开发进阶
 
01.uliweb介绍
01.uliweb介绍01.uliweb介绍
01.uliweb介绍
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门
 
03.python工作环境
03.python工作环境03.python工作环境
03.python工作环境
 
02.python基础
02.python基础02.python基础
02.python基础
 
01.python介绍
01.python介绍01.python介绍
01.python介绍
 
Python面向对象开发基础篇
Python面向对象开发基础篇Python面向对象开发基础篇
Python面向对象开发基础篇
 
Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web FrameworkUliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Framework
 

Uliweb设计分享