チェリーパイ

チェリーパイ
開発者CherryPyチーム
初回リリース2002年6月[ 1 ] (2002-06
安定版リリース
18.10.0 [ 2 ] ウィキデータで編集する / 2024年6月15日 (2024年6月15日
リポジトリCherryPyリポジトリ
書かれたパイソン
オペレーティング·システムクロスプラットフォーム
タイプWebアプリケーションフレームワーク
ライセンスBSDライセンス[ 3 ]
Webサイトチェリーパイ.dev

CherryPyは、 Pythonプログラミング言語を使用したオブジェクト指向のWebアプリケーションフレームワークです。HTTPプロトコルをラップすることでWebアプリケーションを迅速に開発できるように設計されていますがレベルあり RFC 7231で定義されている以上の機能は提供していません。

CherryPyは、それ自体がWebサーバーとして機能することも、WSGI互換環境から起動することもできます。出力レンダリングやバックエンドへのアクセスのためのテンプレート作成といったタスクは扱いません。このフレームワークは、リクエスト/レスポンス処理の特定の時点で呼び出されるフィルターによって拡張可能です。

Pythonインターフェース

プロジェクト創設者であるレミ・デロン氏の目標の一つは、 CherryPyを可能な限りPythonらしくすることでした。これにより、開発者はフレームワークを通常のPythonモジュールのように使用でき、(技術的な観点から言えば)アプリケーションがWeb向けであることを忘れる必要がなくなります。

たとえば、CherryPy 3 を使用した 一般的なHello Worldプログラムは次のようになります。

CherrypyをインポートするクラスHelloWorld : def index ( self ): return "Hello World! " index .exposed = Truecherrypy .クイックスタート( HelloWorld ())

特徴

CherryPy は以下を実装します:

  • HTTP /1.1準拠のWSGIスレッドプール型ウェブサーバー。[ 4 ]通常、CherryPy自体は1ページあたり1~2ミリ秒しかかかりません。[ 5 ] [ 6 ]
  • ApacheIISlighttpdmod_pythonFastCGISCGImod_wsgiなど、その他の WSGI 対応Web サーバーまたはアダプターのサポート。
  • ネイティブmod_pythonアダプター。
  • 複数のHTTPサーバー(例:複数のポートをリッスンする機能)[ 7 ]
  • プラグインシステム[ 8 ] CherryPyプラグインは、サーバープロセス内のイベント(サーバーの起動、サーバーのシャットダウン、サーバーの終了など)にフックして、サーバーの起動時またはシャットダウン時に実行する必要があるコードを実行します。
  • キャッシュエンコードセッション認証、静的コンテンツなどのための組み込みツール。CherryPyツールは、リクエストプロセス内のイベントにフックします。CherryPyサーバーがリクエストを受信すると、そのリクエストを処理するために特定の手順が実行されます。ページハンドラーは、このプロセスにおける1つのステップにすぎません。ツールは、特定のハンドラーセットに対してページハンドラーをオン/オフするための構文と設定APIも提供します。
  • 開発者とデプロイヤー向けの設定システム。[ 9 ] [ 10 ] [ 11 ] CherryPyのデプロイメントは、Python辞書、設定ファイル、オープンファイルオブジェクトを通じて、サイトレベル、アプリケーションレベル、コントローラレベルで設定可能です。
  • CherryPyアプリケーションのテストに使用できるコア機能と関連フレームワークの完全なテストスイート。 [ 12 ]
  • バージョン2.1以降はプロファイリングが組み込まれ、[ 13 ]カバレッジ[ 14 ]およびテストがサポートされています。

CherryPy では、特定のオブジェクトリレーショナルマッパー(ORM)、テンプレート言語、またはJavaScript ライブラリの使用を強制しません。

CherryPyで使用可能

オブジェクトリレーショナルマッパー

テンプレート言語

  • Mako [ 19 ] — Pythonで書かれたテンプレートライブラリで、シンプルなCherryPyツールで使用できます。[ 20 ]
  • Cheetah — Python で書かれたオープンソースのテンプレート エンジンおよびコード生成ツール。
  • CherryTemplate — CherryPy 用のテンプレート言語。
  • Genshi [ 21 ] [ 22 ] — 強力なXMLテンプレート言語。
  • Jinja — 汎用テンプレート言語。CherryPyにはJinjaテンプレートを使用するためのツールがあります。[ 23 ]
  • Kid — Pythonで書かれたXMLベースのボキャブラリのためのシンプルなテンプレート言語。TurboGears 1.xでは、サーバーとしてCherryPy、フロントエンドとしてKidを使用しています。[ 24 ]

CherryPy wikiはテンプレート言語の選択に 役立ちます[ 25 ] 。

CherryPyを使用した製品

  • TurboGears — CherryPy 2.x は、TurboGears 1.x のメイン コンポーネントです。
  • Splunk Enterprise - CherryPy 3.1.2 [ 26 ]

参照

参考文献

  1. ^ 「CherryPyの歴史」
  2. ^ 「リリース v18.10.0」。2024年6月15日。 2025年2月2日閲覧
  3. ^ "cherrypy / CherryPy / source / cherrypy / LICENSE.txt" . BitBucket. 2017年7月15日時点のオリジナルよりアーカイブ。 2015年2月21日閲覧
  4. ^ 「CherryPy — ミニマリスト Python Web フレームワーク」
  5. ^ 「CherryPy v3 WSGIサーバーのベンチマーク結果」 。 2016年3月3日時点のオリジナルよりアーカイブ2009年9月23日閲覧。
  6. ^ CherryPy はどれくらい速いのか? 2010年2月10日アーカイブWayback Machine
  7. ^ 「CherryPyで複数のHTTPサーバーを設定する方法」 。 2016年3月3日時点のオリジナルよりアーカイブ2009年9月23日閲覧。
  8. ^ CherryPyを使ったカスタムエンジンプラグインArchived 3 May 2009 at the Wayback Machine
  9. ^ CherryPyの設定システムArchived 26 June 2009 at the Wayback Machine
  10. ^ CherryPyの設定API 2009年7月1日Wayback Machineアーカイブ
  11. ^設定オプションの簡単な概要
  12. ^ CherryPy 自体のテスト方法Archived 27 September 2009 at the Wayback Machine
  13. ^ CherryPyのプロファイラモジュールArchived 9 February 2010 at the Wayback Machine
  14. ^ 「CherryPyを使ってアプリケーションコードのカバレッジデータを収集し分析する方法」 。 2015年11月17日時点のオリジナルよりアーカイブ。 2009年9月23日閲覧
  15. ^ 「Routesを使用するCherryPy用のシンプルなディスパッチャツール」 。 2016年1月14日時点のオリジナルよりアーカイブ2009年9月27日閲覧。
  16. ^ TurboGears 2.x はサーバーとして CherryPy を使用し、デフォルトの ORM として SQLAlchemy を使用します。
  17. ^ TurboGears 1.x は CherryPy をサーバーとして、SQLObject を ORM として使用しています。2009 年 9 月 22 日、 Wayback Machineにアーカイブされています。
  18. ^ Dejavu 2009年5月17日アーカイブ、 Wayback Machine
  19. ^マコ
  20. ^ 「Makoテンプレート用のシンプルなCherryPyツール」 。 2016年3月3日時点のオリジナルよりアーカイブ2009年9月21日閲覧。
  21. ^ 「CherryPy – Genshi」 . 2009年9月26日閲覧
  22. ^ “Genshi - CherryPy Tools - Trac” . 2012年2月27日時点のオリジナルよりアーカイブ2009年9月26日閲覧。
  23. ^ 「Jinjaテンプレートを使用するための基本的なCherryPyツール」 。 2015年9月5日時点のオリジナルよりアーカイブ2009年9月23日閲覧。
  24. ^ TurboGears 1.x は CherryPy をサーバーとして、Kid をフロントエンドとして使用しています。2009 年 9 月 22 日、 Wayback Machineアーカイブされています。
  25. ^ CherryPy wiki テンプレート言語の選択に関する記事Archived 10 February 2010 at the Wayback Machine
  26. ^ 「CherryPy - Splunk Knowledgebase」 . 2015年11月17日時点のオリジナルよりアーカイブ2015年3月24日閲覧。