热门问题
时间线
聊天
视角
CherryPy
来自维基百科,自由的百科全书
Remove ads
CherryPy是一個面向對象的web應用框架,使用了Python編程語言。它設計用於web應用的快速開發,通過包裹HTTP協議,但停留在低層而不提供超出RFC 7231所定義的東西。
CherryPy自身可以是個web服務器,也可以通過任何WSGI兼容環境來啟動它。它不處置用於輸出呈現的模板或後端訪問的任務。這個框架可以採用過濾器來擴展,它被調用於請求/響應處理的確定點上。
Python化接口
這個項目創立者Remi Delon的目標之一,是使得CherryPy儘可能的體現Python原則。這允許開發者將這個框架同任何正規Python模塊一樣的使用,而忘記(從技術的角度)這個應用是用於web。
例如,常見的Hello World程序用CherryPy 3將寫為如下:
import cherrypy
class HelloWorld:
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
特徵
CherryPy實現了:
- 遵循HTTP/1.1、WSGI的線程池的webserver[4]。典型的,CherryPy自身每頁只用1–2ms[5][6]。
- 支持任何任何其他啟用WSGI的web服務器或適配器,包括Apache、IIS、lighttpd、mod_python、FastCGI、SCGI和mod_wsgi。
- 一個原生的mod_python適配器。
- 多個HTTP服務器(就是有能力監聽多個端口)[7]。
- 一個插件系統[8],CherryPy插件掛鉤到在服務器進程內的事件,服務器啟動、服務器關閉、服務器退出等,用來執行在服務器啟動和關閉時需要運行的代碼。
- 內建工具用於緩存、編碼、會話、授權、靜態內容和其他。CherryPy工具掛鉤到在請求處理內的事件。在CherryPy服務器收到一個請求的時候,它有一組特定的步驟要履行來處理這個請求。頁面處理器只是這個處理的步驟之一。工具還提供語法和配置API來為特定集合的處理器而打開和關閉它們。
- 給開發者和部署者的一個配置系統[9][10][11]。CherryPy部署可配置於站點上、應用上和在控制器層面上,通過Python字典、配置文件和打開文件對象。
- 一個完全的測試套件用於核心功能和有關框架,可以用來測試CherryPy應用[12]。
- 內建剖析自從v2.1[13]、覆蓋[14]和測試支持。
CherryPy不強制使用特定對象關係映射器(ORM)、模板語言或JavaScript庫。
Remove ads
- Routes,一個Ruby on Rails的路由系統的Python重新實現,用於映射URL到控制器/行動和生成URL[15]。
- SQLAlchemy,用於Python應用的一個數據庫後端和ORM。
- SQLObject,一個流行的ORM用於提供到數據庫的對象接口。支持很多常見數據庫後端:包括在發行中的有MySQL、PostgreSQL、SQLite、Sybase SQL Server、MaxDB、Microsoft SQL Server和Firebird。
- Storm,Canonical公司的ORM。
- MongoEngine,用於連接到MongoDB的ODM[16]。
參見
引用
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads