Uliweb 0.4 釋出,Python 的 Web 框架

TP_funny發表於2014-09-22
liweb 0.4 釋出,更新內容如下:

問題修復
  • 修正 Pickle 預設值Bug,將不會自動將空值轉為 ''
  • 修正當存在 group_by, limit, join 時的 count 的實現,將使用 select count(*) from (select * from table)
  • 修正 uliweb load 在處理cvs格式時的Bug,感謝 taogeT
  • 修正 tmp/templates_temp 建立Bug
  •  修正顯示模板塊順序不正確的Bug
功能優化
  • 使用tornado的模板程式碼重構uliweb的模板實現,具體變化內容詳見 模板
  • 新增 staticize 命令,實現靜態化
  • 新增 __debug__ 引數用於跟蹤 i18n 語言的變化
  • ORM多資料庫配置時,增加複製的支援,你可以在 CONNECTIONS 配置項中進行設定
  • 向 ORM 中新增 set_session() 函式
  • 向ORM中的 Property 類新增 fieldname 引數
  • 向 load 和 loadtable 新增 -z 引數,感謝 linuxr
  • 向模板的 Loader.load() 方法新增 layout 引數,可以用來實現動態模板繼承
  • 新增 validatetemplate 命令,可以用來檢查專案,app或單個模板的語法是否正確。可以方便用來檢查升級到0.4後的模板問題。 詳情參見 validatetemplate

Uliweb是一個新的Python Web Framework,它之所以會產生是因為現有的框架多少有些令人不滿意的地方,而且許多情況下這些不滿意的地方或多或少對於Web開發有影響,因此在經 過對不少框架的學習之後,我決定開發一個新的框架,希望可以綜合我認為其它框架中儘可能多的優點,同時使這個新的框架儘可能的簡單,易於上手和使用。不過 這個框架目前主要還是一個人在做,並且是業餘在做,所以在進度上相對要慢一些。

Uliweb並不是一個從頭開始的框架,它使用了一些較為成熟的庫,如:用來進行命令列、URL對映、Debug等核心處理的Werkzeug; 用來生成和處理請求、響應物件的webob;強大的ORM庫SqlAlchemy等等。Uliweb在開發 中還借鑑了象web2py的 Template模板模組,Django的一些設計思想和成果。

Uliweb是採用類Django的MVT的模型,整個專案將由若干個相對獨立的app構成,每個app將有自已的配置檔案,templates目 錄,static目錄等。URL可以自動對映也可以手動對映。模板中可以直接嵌入Python程式碼,但是你不需要關心程式碼的縮近,只要注意在塊結束前加上 pass語句。對資料庫的處理使用ORM的方式進行處理,同時你還可以直接使用底層的SQLAlchemy模組。支援程式碼和模板中的i18n的處理。 Uliweb還從Ulipad中移植了Plugin機制,可以方便地在框架中新增使用者特殊的處理。通過提供的命令列工具可以執行象啟動開發伺服器,匯出源 程式碼等操作。現在Uliweb可以在GAE,mod_wsgi,fastcgi,scgi,cgi等多種環境下部署。

除此之外,Uliweb框架中包含眾多自有的創新,如可用來生成HTML程式碼和對上傳的資料進行校驗的Form處理,包括對模板和頁面的i18n處理,框 架處理程式碼,從Ulipad中移植並進行了改造的外掛機制。
值得一提的是,Uliweb框架中將開發自己的ORM 機制Uliorm,Uliorm在SqlAlchemy基礎之上進行封裝,同時參考了GAE中datastore的程式碼。
來自:開源中國
評論(2)

相關文章