Pylons
Pylons計劃是開發一組用Python書寫的web應用技術的開源組織。最初這個計劃只是一個叫做Pylons的單一的web框架,但是後來合併了repoze.bfg框架,並取了新名字Pyramid,Pylons計劃現在由多個有關的web應用技術組成。
網站類型 | Python框架開發 |
---|---|
語言 | English |
持有者 | 開源 |
編輯 | 匿名 |
網址 | pylonsproject |
商業性質 | No |
註冊 | None |
推出時間 | 2010年12月27日 |
現狀 | 活躍 |
Pyramid
開發者 | Chris McDonough, Ben Bangert, Michael Merickel, Bert JW Regeer, Steve Piercy |
---|---|
首次發佈 | 2008年7月8日[1] |
當前版本 | 2.0.2[2] (2023年8月25日,14個月前) |
原始碼庫 | www |
程式語言 | Python |
作業系統 | 跨平台 |
類型 | Web應用框架 |
許可協議 | BSD License |
網站 | trypyramid |
Pyramid是用Python書寫的開源web應用框架,它基於了WSGI。它是受到Zope、Pylons和Django啟發的極簡主義的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對象數據庫二者,還有其他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框架
開發者 | Ben Bangert, James Gardner |
---|---|
首次發佈 | 2005年9月[9] |
當前版本 | 1.0.2[10] (2015年7月22日,9年前) |
程式語言 | Python |
作業系統 | 跨平台 |
類型 | Web應用框架 |
許可協議 | BSD license |
網站 | pylonsproject |
Pylons是一個開放原始碼的Web應用框架,使用Python語言編寫。它對WSGI標準進行了擴展應用,提升了重用性且將功能分割到獨立的模塊中。
Pylons類似於Django和TurboGears。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和Prototype庫的JavaScript代碼。
模板
Myghty是缺省的Pylons模板語言,但在版本0.9.6它被替代為Mako[17]。也可以使用其他模板語比如Genshi[18]。
數據庫抽象和對象關係映射
Pylons沒有默認的數據庫程序庫。可以使用比較有名的SQLObject和SQLAlchemy。
另見
參考
- ^ Pyramid Change History. The Pyramid Web Framework. Pylons Project. [10 March 2017]. (原始內容存檔於2021-01-01).
- ^ Release 2.0.2. 2023年8月25日 [2023年9月19日].
- ^ 3.0 3.1 Chris McDonough. repoze.bfg introduction. [2010-09-21]. (原始內容存檔於2013-12-30).
- ^ Gary Poster. Zope Summit, DZUG, repoze.bfg. 2010-09-17 [2010-09-21]. (原始內容存檔於2011-08-13).
- ^ 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).
- ^ Ben Bangert. Emails explaining the Pylons 2 structure. 2010-09-18 [2010-09-21]. (原始內容存檔於2022-04-01).
- ^ repoze.bfg is now Pyramid. [2011-01-03]. (原始內容存檔於2010-11-13).
- ^ Wichert Akkerman. Lessons from other frameworks. Budapest, Hungary: Plone Conference 2009. 事件發生在 25:50. 2009-10-28 [2010-09-21]. (原始內容存檔於2013-04-18).
- ^ History of Pylons. [2020-11-01]. (原始內容存檔於2020-07-07).
- ^ Release 1.0.2. 2015年7月22日 [2018年7月22日].
- ^ 11.0 11.1 Routes
- ^ WebHelpers. [2015-12-15]. 原始內容存檔於2015-12-22.
- ^ Python CheeseShop. [2008-08-11]. 原始內容存檔於2008-07-19.
- ^ EasyInstall
- ^ Selector
- ^ WebHelpers
- ^ Haas, Christoph Beginning Pylons 互聯網檔案館的存檔,存檔日期2009-02-16.. Retrieved July 5, 2007
- ^ Genshi Wiki Pylons with Genshi (頁面存檔備份,存於互聯網檔案館) Retrieved July 5, 2007