CherryPy

出自Local Chinese Wikipedia
跳至導覽 跳至搜尋
CherryPy
開發者CherryPy team
首次發布2002年6月,​24年前​(2002-06[1]
當前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    源代碼庫CherryPy Repository
    編程語言Python
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      操作系統跨平台
      類型Web應用框架
      許可協議BSD許可證[2]
      網站cherrypy.org

      CherryPy是一個面向對象web應用框架,使用了Python編程語言。它設計用於web應用快速開發,通過包裹HTTP協議,但停留在低層而不提供超出RFC 7231所定義的東西。

      CherryPy自身可以是個web服務器,也可以通過任何WSGI兼容環境來啟動它。它不處置用於輸出呈現的模板或後端訪問的任務。這個框架可以採用過濾器來擴展,它被調用於請求/響應處理的確定點上。

      Python化接口[編輯]

      這個項目創立者Remi Delon英語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[3]。典型的,CherryPy自身每頁只用1–2ms[4][5]
      • 支持任何任何其他啟用WSGI的web服務器或適配器,包括ApacheIISlighttpdmod_python英語mod_pythonFastCGISCGImod_wsgi英語mod_wsgi
      • 一個原生的mod_python英語mod_python適配器。
      • 多個HTTP服務器(就是有能力監聽多個端口)[6]
      • 一個插件系統[7],CherryPy插件掛鉤到在服務器進程內的事件,服務器啟動、服務器關閉、服務器退出等,用來執行在服務器啟動和關閉時需要運行的代碼。
      • 內建工具用於緩存編碼會話授權、靜態內容和其他。CherryPy工具掛鉤到在請求處理內的事件。在CherryPy服務器收到一個請求的時候,它有一組特定的步驟要履行來處理這個請求。頁面處理器只是這個處理的步驟之一。工具還提供語法和配置API來為特定集合的處理器而打開和關閉它們。
      • 給開發者和部署者的一個配置系統[8][9][10]。CherryPy部署可配置於站點上、應用上和在控制器層面上,通過Python字典、配置文件和打開文件對象。
      • 一個完全的測試套件用於核心功能和有關框架,可以用來測試CherryPy應用[11]
      • 內建剖析自從v2.1[12]覆蓋[13]和測試支持。

      CherryPy不強制使用特定對象關係映射器(ORM)、模板語言英語Web template systemJavaScript庫

      可用於CherryPy的模塊[編輯]

      • Routes,一個Ruby on Rails的路由系統的Python重新實現,用於映射URL到控制器/行動和生成URL[14]

      對象關係映射器[編輯]

      模板語言[編輯]

      參見[編輯]

      引用[編輯]

      1. History of CherryPy. [2021-03-12]. (原始內容存檔於2018-12-15). 
      2. cherrypy / CherryPy / source / cherrypy / LICENSE.txt. BitBucket. [2015-02-21]. (原始內容存檔於2017-07-15). 
      3. 存档副本. [2021-03-12]. (原始內容存檔於2021-05-14). 
      4. CherryPy v3 WSGI server benchmark results. [2009-09-23]. (原始內容存檔於2016-03-03). 
      5. How fast is CherryPy? 網際網路檔案館存檔,存檔日期2010-02-10.
      6. How to set up multiple HTTP servers with CherryPy. [2009-09-23]. (原始內容存檔於2016-03-03). 
      7. Custom engine plugins with CherryPy 網際網路檔案館存檔,存檔日期2009-05-03.
      8. Configuration system of CherryPy 網際網路檔案館存檔,存檔日期2009-06-26.
      9. Configuration API of CherryPy 網際網路檔案館存檔,存檔日期2009-07-01.
      10. Short summary of configuration options. [2021-03-12]. (原始內容存檔於2010-08-18). 
      11. How to test CherryPy itself 網際網路檔案館存檔,存檔日期2009-09-27.
      12. Profiler module of CherryPy 網際網路檔案館存檔,存檔日期2010-02-09.
      13. How to collect and the analyse coverage data of application code with CherryPy. [2009-09-23]. (原始內容存檔於2015-11-17). 
      14. Routes Documentation. [2021-03-13]. (原始內容存檔於2019-11-28). 
      15. mongoengine.org. [2021-03-13]. (原始內容存檔於2021-01-17). 
      16. Mako Templates for Python. [2021-03-12]. (原始內容存檔於2021-05-11). 
      17. A simple CherryPy tool for Mako templating. [2009-09-21]. (原始內容存檔於2016-03-03). 
      18. CherryPy – Genshi. [2009-09-26]. (原始內容存檔於2012-07-04). 
      19. Genshi - CherryPy Tools - Trac. [2009-09-26]. (原始內容存檔於2012-02-27). 
      20. A basic CherryPy Tool for using Jinja templates. [2009-09-23]. (原始內容存檔於2015-09-05). 

      外部鏈接[編輯]

      • Module:Official_website第90行Lua錯誤:attempt to index field 'wikibase' (a nil value)