Pylons

維基百科,自由的百科全書
Pylons計劃
網站類型
Python框架開發
語言English
持有者開源
編輯匿名
網址pylonsproject.org 編輯維基數據鏈接
商業性質No
註冊None
推出時間2010年12月27日 (2010-12-27)
現狀活躍

Pylons計劃是開發一組用Python書寫的web應用技術的開源組織。最初這個計劃只是一個叫做Pylons的單一的web框架,但是後來合併了repoze.bfg框架,並取了新名字Pyramid,Pylons計劃現在由多個有關的web應用技術組成。

Pyramid[編輯]

Pyramid
開發者Chris McDonough, Ben Bangert, Michael Merickel, Bert JW Regeer, Steve Piercy
首次發佈2008年7月8日,​15年前​(2008-07-08[1]
原始碼庫www.github.com/Pylons/pyramid
程式語言Python
作業系統跨平台
類型Web應用框架
許可協議BSD License
網站trypyramid.com

Pyramid是用Python書寫的開源web應用框架,它基於了WSGI。它是受到ZopePylonsDjango啟發的極簡主義的web框架[3]

Pyramid最初叫做「repoze.bfg」,它獲得關注主要在於Zope[4]Plone社區,隨着開放社會基金會的KARL計劃從Plone遷移至BFG[5]。在2010年宣佈了Pylons框架將於版本1.5轉移到使用BFG作為基礎[6]。作為將BFG包括入Pylons計劃的結果,BFG被重命名為Pyramid[7]

特徵[編輯]

Pyramid是極簡主義的跨平台web框架。它不預定持久化方式,可以通過SQLAlchemy集成於SQL數據庫或集成於Zope對象數據庫英語Zope Object Database二者,還有其他NoSQL數據庫比如CouchDB[3]

Pyramid允許開發者使用正則表達式定義映射到對象的路由。同樣跟從框架Zope,Pyramid允許層級對象遍歷,這裏URL的每個部份都是包含其他對象的對象,這種方式類似於文件系統中的文件夾[8]

例子代碼[編輯]

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
    return Response('Hello World!')

if __name__ == '__main__':
    with Configurator() as config:
        config.add_route('hello', '/')
        config.add_view(hello_world, route_name='hello')
        app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 6543, app)
    server.serve_forever()

Pylons框架[編輯]

Pylons框架
開發者Ben Bangert, James Gardner
首次發佈2005年9月,​18年前​(2005-09[9]
程式語言Python
作業系統跨平台
類型Web應用框架
許可協議BSD license
網站pylonsproject.org/about-pylons-framework.html

Pylons是一個開放原始碼Web應用框架,使用Python語言編寫。它對WSGI標準進行了擴展應用,提升了重用性且將功能分割到獨立的模塊中。

Pylons類似於DjangoTurboGears。Pylons受Ruby on Rails影響很深:它的兩個組件,Routes[11]和WebHelpers[12]是Rails特性的Python實現。

安裝和依賴[編輯]

Pylons的官方安裝方法是從Python CheeseShop[13]下載使用EasyInstall[14]完成,而大部分的附加工具也通常以相同方式安裝。

URL分派[編輯]

Pylons普遍使用的URL分派器是Routes[11],實際是Ruby on Rails的URL分派的Python重新實現,其他的URL分派器只要是WSGI兼容也可以使用,例如Selector[15]

HTML生成[編輯]

另一個從Rails Pylons化的部分是WebHelpers[16],它提供了基於路徑的URL映射。WebHelpers也提供了一些實用的功能來生成基於script.aculo.us英語script.aculo.usPrototype庫的JavaScript代碼。

模板[編輯]

Myghty是缺省的Pylons模板語言,但在版本0.9.6它被替代為Mako[17]。也可以使用其他模板語比如Genshi英語Genshi (templating language)[18]

數據庫抽象和對象關係映射[編輯]

Pylons沒有默認的數據庫程序庫。可以使用比較有名的SQLObjectSQLAlchemy

另見[編輯]

參考[編輯]

  1. ^ Pyramid Change History. The Pyramid Web Framework. Pylons Project. [10 March 2017]. (原始內容存檔於2021-01-01). 
  2. ^ Release 2.0.2. 2023年8月25日 [2023年9月19日]. 
  3. ^ 3.0 3.1 Chris McDonough. repoze.bfg introduction. [2010-09-21]. (原始內容存檔於2013-12-30). 
  4. ^ Gary Poster. Zope Summit, DZUG, repoze.bfg. 2010-09-17 [2010-09-21]. (原始內容存檔於2011-08-13). 
  5. ^ Thomas Moroz, Chris Rossi & Calvin Hendryx-Parker. KARL – large-scale Knowledge Management. Budapest, Hungary: Plone Conference 2009. 2009-10-28 [2010-09-23]. (原始內容存檔於2010-06-02). 
  6. ^ Ben Bangert. Emails explaining the Pylons 2 structure. 2010-09-18 [2010-09-21]. (原始內容存檔於2022-04-01). 
  7. ^ repoze.bfg is now Pyramid. [2011-01-03]. (原始內容存檔於2010-11-13). 
  8. ^ Wichert Akkerman. Lessons from other frameworks. Budapest, Hungary: Plone Conference 2009. 事件發生在 25:50. 2009-10-28 [2010-09-21]. (原始內容存檔於2013-04-18). 
  9. ^ History of Pylons. [2020-11-01]. (原始內容存檔於2020-07-07). 
  10. ^ Release 1.0.2. 2015年7月22日 [2018年7月22日]. 
  11. ^ 11.0 11.1 Routes
  12. ^ WebHelpers. [2015-12-15]. 原始內容存檔於2015-12-22. 
  13. ^ Python CheeseShop. [2008-08-11]. 原始內容存檔於2008-07-19. 
  14. ^ EasyInstall
  15. ^ Selector
  16. ^ WebHelpers
  17. ^ Haas, Christoph Beginning Pylons 互聯網檔案館存檔,存檔日期2009-02-16.. Retrieved July 5, 2007
  18. ^ Genshi Wiki Pylons with Genshi頁面存檔備份,存於互聯網檔案館) Retrieved July 5, 2007

外部連結[編輯]