問題タブ [cherrypy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ソケットを閉じていないcherrypy
私はcherrypyをWebサーバーとして使用しています。それは私のアプリケーションに良いパフォーマンスを与えますが、それには非常に大きな問題があります。開いているファイルが多すぎるため、ソケットを作成できなかったことを示すcherrypyが数時間後にクラッシュします。
私は何が起こっているのか理解しようとしました。私のアプリケーションはファイルやソケットなどを開きません。私のファイルはいくつかのバークレーデータベースしか開きません。この問題をさらに調査しました。/ proc / 4536 / fd/にあるid4536のcherrypyプロセスで使用されるファイル記述子を確認しました。最初は新しいソケットが作成され、適切にクリーンアップされましたが、1時間後、約509個のソケットがクリーンアップされていないことがわかりました。すべてのソケットはCLOSE_WAIT状態でした。次のコマンドを使用してこの情報を取得しました。
CLOSE_WAIT状態は、リモートクライアントが接続を閉じたことを意味します。なぜcherrypyはソケットを閉じず、ファイル記述子を解放しないのですか?問題を解決するにはどうすればよいですか?
私は以下で遊んでみました:
これにより、いつでも開くソケットの数が10に制限されると思いましたが、まったく効果がありませんでした。これは私が設定した唯一の構成であるため、残りの構成はデフォルト値を保持します。
誰かがこれに光を当てることができますか?チェリーピーのバグだと思いますか?どうすれば解決できますか?これらのソケットを自分で閉じる方法はありますか?
以下は私のシステム情報です:
CherryPy-3.1.0
Python 2.3.4
Red Hat Enterprise Linux ESリリース4(Nahant Update 7)
前もって感謝します!
python - Cherrypyの良い「お問い合わせ」レシピはありますか?
Cherrypyで「お問い合わせ」フォームを実装しようと思っていましたが、疑問に思っていました。車輪の再発明の代わりに使用できる優れたレシピ(またはBSDライセンスのコードセット)はありますか?
理想的には、これはCherrpy3.1と互換性があります。
apache - mod_rewriteでスペースをエスケープする
次のApachemod_rewriteルールがあります。
これはうまく機能します。Apacheは、同じマシンで実行しているCherryPyサーバーにすべてのリクエストを転送します。
残念ながら、スペースのあるパスで問題が発生しています。私がリクエストを行うと/Sites/some%20site/image.png
、ApacheはCherryPyにリクエストを送信します。CherryPyはCherryPy/Sites/some site/image.png
を台無しにします。
リクエストをCherryPyに転送する前に、URLのスペースを再エスケープすることをRewriteRuleで指定する方法はありますか?
編集:私は役立つかもしれない何かへの参照を見つけました、しかし私は先に進み、スペースをアンダースコアに置き換え、ファイルを提供する前にCherryPyに変換を行わせることによって問題を解決しました。
誰かが持っているなら、私はまだより良い解決策を知りたいです。残念ながら、私は締め切りが迫っていて、今のところ自分でこれをいじくり回す時間がありません。後でこれに戻って、時間を見つけたらさらに更新を投稿することがあります。
python - ウェブホスティング コントロール パネル アプリケーション用の CherryPy
かなり長い間、Web ホスティングのコントロール パネルになることを目標とするペット プロジェクトを開始したいと考えていましたが、主に Python ホスティングに焦点を当てていました。つまり、ユーザーが Django を生成/起動する方法を作りたいということです。 / パネルから直接他のフレームワーク プロジェクト。それを使ってアプリを構築するのに最適なツール、CherryPy を見つけたようです。
これにより、自分の好きなプログラミング言語で、独自の HTTP/HTTPS サーバーを使用してアプリを構築することができます。
しかし、ここで新たな疑問が生じます。CherryPy はスレッド化されたサーバーであるため、この種のタスクに適しているでしょうか?
時間のかかるタスクが多数あるため、タスクの 1 つがブロックされると、他のページにアクセスしようとしている残りのユーザーは待機状態になり、最終的にタイムアウトになります。
この種の問題は、フォーク ベースのサーバーでは発生しないと思います。
何をアドバイスしますか?
python - Turbogears/cherrypy アプリケーションから外部 URL を参照する方法は?
私はターボギアを学ぶために tinyurl クローンを書いています。cherrypy/turbogears アプリからブラウザーを外部 Web サイト (www.yahoo.com など) にリダイレクトするにはどうすればよいですか?
私はそれについてグーグルで調べましたが、あまり有用な情報を見つけることができませんでした.
python - StringTemplate エンジンを CherryPy Web サーバーに統合する方法
私は StringTemplate エンジンが大好きで、CherryPy Web サーバーが大好きで、それらを統合できることを知っています。
誰がそれをしたのですか?どのように?
編集: TurboGears フレームワークは、CherryPy Web サーバーを使用し、テンプレート エンジン、データ アクセス ツール、JavaScript キットなどの他の関連コンポーネントをバンドルします。MochiKit に興味があり、CherryPy を要求しますが、他のテンプレート エンジンは必要ありません。 StringTemplate (アーキテクチャは重要です。別の壊れた/悪いテンプレート エンジンは必要ありません)。
したがって、StringTemplate を TurboGears と統合する方法を説明することで、この質問に答えることができます。
Google App Engine で CherryPy と StringTemplate を使用する方法に対処することで、この質問に答えることができる場合もあります。
ありがとう。
google-app-engine - Google App Engine で CherryPy Web サーバーを実行する方法
CherryPy Web サーバーは、おそらく Google App Engine にデプロイできます。
誰がそれを行い、どのような経験をしましたか?
どのような特別な作業が必要でしたか (構成など)?
他の人に勧めますか?
python - Cherrypyは箱から出してマルチパート/混合POSTを受け取ることができますか?
マルチパート/混合エンコーディングのみを提供するデバイスから、xml +任意のバイナリファイル(画像やオーディオなど)のPOSTデータを受信しています。
レシーバー側にcherrypyアップロード/POSTハンドラーを設定しました。multipart / form-dataを使用して、任意の数のパラメーターを実行できるようにすることができました。ただし、マルチパート混合データを送信しようとすると、処理が行われません。
したがって、multipart / form-dataを送信する場合、argsとkwargsは明確に定義されています。
argsはフォームフィールドであり、kwargs=varsとvaluesのハッシュです。multipart / mixedを送信すると、argsとkwargsは空になり、生のPOST情報としてcherrypy.request.rfileがあります。
私の質問は、cherrypyにはPOSTのマルチパート/混合およびチャンクエンコーディングを処理するための組み込みハンドラーがありますか?または、cherrypy.tools.process_request_bodyをオーバーライドして、独自のデコーダーをロールする必要がありますか?
Cherrypyを備えた組み込みのwsgiサーバーがこれをHTTP/1.1仕様の一部として処理しているようですが、この機能にアクセスする際にcherrypyのドキュメントが見つからなかったようです。
...明確にするために
Cherrypyの最新バージョン3.1.1程度を使用しています。
デフォルトのフォームを作成するには、アップロード関数でパラメーターを作成するだけです。
multipart / form-dataについては、curl -F param1 = @ file1.jpg -F param2 = sometext -F param3 = @ file3.wav http:// destination:port/uploadを呼び出しています。
その例では、次のようになります。
multipart / mixedを送信しようとしたときに、request.bodyを確認しようとしましたが、ボディ処理の設定に関係なく、Noneを取得し続けました。
私たちが得ている入力は次のようになります:
multipart / mixedは、cherrypyがrfileだけを私に与えているという問題であるというこっそりの疑いがあります。私たちの目標は、受信側で最小限の処理で、cherrypyにボディをパーツに処理させることです(つまり、cherrypyに魔法をかけてもらいます)。そのために、送信形式をcherrypyが好むコンテンツタイプにするのが難しい場合は、そうしてください。受け入れられるフォーマットは何ですか?multipart / form-dataだけですか?
python - 多くのコントローラー (サブビュー) 用の 1 つのビュー (フロントページ)
注: Javascript または iframe は使用できません。実際、私はクライアント ブラウザが超基本的なことしかできないとは信じていません。
現在、私の研究のほとんどは Pylon のフレームワークに焦点を当てており、レガシー PHP4 アプリを MVC アプリケーションとして再構築しています。
私が遭遇した最初の奇妙な問題の 1 つと、過去に iframe を使用して解決した問題の 1 つは、JavaScript を使用して、典型的なコントローラーのインデックス ビューのダイジェスト ビューのような「ウィジェット」の動的コレクションを表示することです。
私の問題を視覚化する最良の方法は、Google のパーソナライズされたホームページを見ることです。彼らはJavascriptで問題を解決しますが、私のシナリオではjavascriptと基本的なXHTML以上のものはほとんど不可能です.
私が取り組み始めたアイデアの 1 つは、現在アクティブなウィジェットのデータベースまたはその他のサービスを Frontpage コントローラーにポーリングさせ、タプル/ディクテーションのリストを取得し、各コントローラーを動的にインスタンス化し、レンダー サブビューのリスト/ディクテーションを構築して渡すことでした。それをフロントページビューに表示して、物事を理解させます。
したがって、peusudo コードでは次のようになります。
subRender に関する奇妙なビット
__import__
(現在、プロジェクトの名前空間にハードコードされています:()を介してコントローラーを動的にインポートします- 非常にコストがかかる可能性があります (ほとんどのウィジェット呼び出しはキャッシュできますが、そのうちの 1 つはユーザー パネルです)
これを行うには、より良い方法、またはおそらく WSGI または Pylons に既に実装されているメカニズムが必要だと思いますが、これまでのところ、私が見つけた最も近い方法は次のユーティリティメソッドです: http://www.pylonshq.com/ docs/en/0.9.7/modules/controllers_util/#pylons.controllers.util.forward ですN
が、コレクション ビューを取得するためだけにpylonsの上に pylons のインスタンスを構築するのは少しクレイジーに思えます。
python - Python ウェブプログラミング
おはようございます。
タイトルが示すように、Web 開発に Python を使用することについていくつか質問があります。
- 開発環境に最適なセットアップは何ですか。より具体的には、どの Web サーバーを使用するか、それに Python をバインドする方法です。できれば、* nix と win 環境の両方で実装できるようにしたいと思います。
最後に apache + mod_python + CherryPy を試したときの私の主な懸念は、変更を確認するために Web サーバーをリロードする必要があることでした。それは正常と見なされますか?何らかの理由で、cherrypy の自動リロードがまったく機能しませんでした。
動作中の Python アプリを本番環境にデプロイするための最適な設定とその理由は何ですか? 現在、PHP Web アプリケーションに lighttpd を使用していますが、たとえば nginx と比較して Python ではどのように機能しますか?
フレームワークでまっすぐに飛び込む価値がありますか、それとも私自身の単純なものを転がす価値がありますか? Django にはかなり多くのファンがいることがわかりましたが、私のニーズに対してはやり過ぎだと思ったので、CherryPy を調べ始めました。
変更を確認するために httpd をリロードする必要がある場合、Python アプリはどのように提供されますか? 子プロセスを生成する永続的なプロセスのようなもので、サーバーの起動時にすべての主要なファイルが含まれ、必要なリソースを遅延ロードするだけですか?
Python はマルチスレッドをサポートしていますが、Web アプリを開発する際にメリットを得るためにマルチスレッドの使用を検討する必要がありますか? どのような状況で、どのようなメリットがあるのでしょうか?
本当にありがとう!