The Turbo Gears!
---- Riverleaf bible
1 The TurboGears!
TurboGears (超速齒輪)是個 python 風格(pythonic) 的網頁應用程式設計開發集成框架. 透過巧妙集成了許多 python 語言下的網頁程式相關開發工具, 提供了網頁程式開發者強大的支援.
TurboGears 利用 CherryPy(網頁控制框架), Kid(樣板系統), Mochikit(Javascript 函式庫), SQLObject(資料庫物件模型)這幾個套件為主體, 朝著簡單易用又靈活的方向, 做到快速網頁應用程式開發的功能.
組成 TurboGears 的齒輪們都是開發多年的成熟套件, 在主要功能的穩定性上可以信任, 而且 TurboGears 還可搭配其他的 ORM 系統如SQLAlchemy, 其他的模板系統如 cheetah, Paste, Stan等, 延伸性極高.
使用 TurboGears 可以順暢地利用 python 語言, 以簡單, 直覺, 易讀的方式來控制網站程式的運作(Business logic), 產生表單物件, 檢驗表單內容, 並使用視覺化的模板系統來編輯動態網站程式的外觀, 或運用AJAX來製作新一代的網頁應用程式.在多語言支援上, TurboGears 提供網頁介面的 il8n 翻譯協助工具, 讓網站多語言支援變得不再困難; 在牽涉到資料庫的進階設計中, TurboGears 提供 DataController 來達成自動生成對應資料庫欄位的網頁編輯介面 CRUD/scanfold 功能. 提供網頁介面的"資料表設計師(Database Designer)"工具, 可以視覺化地設計資料組織方式; 提供網頁介面的資料表管理工具"(CatWalk)", 管理後端的資料模型。
TurboGears 利用 CherryPy(網頁控制框架), Kid(樣板系統), Mochikit(Javascript 函式庫), SQLObject(資料庫物件模型)這幾個套件為主體, 朝著簡單易用又靈活的方向, 做到快速網頁應用程式開發的功能.
組成 TurboGears 的齒輪們都是開發多年的成熟套件, 在主要功能的穩定性上可以信任, 而且 TurboGears 還可搭配其他的 ORM 系統如SQLAlchemy, 其他的模板系統如 cheetah, Paste, Stan等, 延伸性極高.
使用 TurboGears 可以順暢地利用 python 語言, 以簡單, 直覺, 易讀的方式來控制網站程式的運作(Business logic), 產生表單物件, 檢驗表單內容, 並使用視覺化的模板系統來編輯動態網站程式的外觀, 或運用AJAX來製作新一代的網頁應用程式.在多語言支援上, TurboGears 提供網頁介面的 il8n 翻譯協助工具, 讓網站多語言支援變得不再困難; 在牽涉到資料庫的進階設計中, TurboGears 提供 DataController 來達成自動生成對應資料庫欄位的網頁編輯介面 CRUD/scanfold 功能. 提供網頁介面的"資料表設計師(Database Designer)"工具, 可以視覺化地設計資料組織方式; 提供網頁介面的資料表管理工具"(CatWalk)", 管理後端的資料模型。
2 Database
2.1 ORM
2.1.1 Active Record VS Data Mapping Mode
Active Record ORMs are too limited
– Poor performance
– One class, one table
– Don't play nice with triggers
● SQLAlchemy solves these problems
– But the docs are over 100 pages long (not
including generated API info)
● You probably know SQL already
– If you don't, you're going to need to eventually
2.2 Alchemy with MS Access?
搜索了
Google
,都搜不到
Alchemy
支持
MS Access
的任何踪迹。看来,我还是需要自己去写一个
Alchemy with MS Access
了。为什么放着
Alchemy + SQLite
或其他的现成支持不用呢?其实,还不是为了兼容
GsmSMS
系统?
3 Version Control
软件的版本控制一定会慢慢的有需要。既然想要一直Pythonize下去,那么,我为什么不选用mercurial(水银)来做我的版本控制系统呢?
[1]
4 更新的技术!!!
4.1 Now running on Django trunk
http://seaaboveskybelow.org/weblog/2006/sep/09/now-running-on-django-trunk/
这两天把运行本站的代码升级到了trunk,重写工作大部分是丢弃代码;-} ,用新的特性,代码更简洁和清晰了。这次重构/升级很愉快,django社区往less magic as possible前进的工作进行的很好。随着自己渐渐变成个”老“pythoner,对Zen中的:
- Explicit is better than implicit.[2]
- There should be one-- and preferably only one --obvious way to do it.
也愈加会心。另外我用contrib中新添加的sitemap生成了本站的
google sitemap , 花了大概两分钟。原来用google的python脚本花了大概20分钟 ;-)