問題タブ [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.

0 投票する
2 に答える
1491 参照

python - Python: deferToThread XMLRPC サーバー - ツイスト - Cherrypy?

この質問は、主にメモリ内の膨大なデータセットの並べ替えに関して、私がここで尋ねた他の質問に関連しています。

基本的に、これは私が欲しい/持っているものです:

ねじれた XMLRPC サーバーが実行されています。このサーバーは、Foo クラスのいくつか (32) のインスタンスをメモリに保持します。各 Foo クラスには、リスト バー (数百万のレコードが含まれます) が含まれます。データベースからデータを取得し、それを XMLRPC サーバーに渡すサービスがあります。データは基本的に、各 Foo インスタンスに対応するキーを持つ辞書であり、値は次のような辞書のリストです。

次に、各 Foo インスタンスにそのキーに対応する値が渡され、Foo.bar 辞書が更新されて並べ替えられます。

問題は、更新関数が多数のレコード (たとえば 100K +) を使用して XMLRPCController で呼び出されると、32 個の Foo インスタンスすべてが process_data メソッドを完了するまで getData 呼び出しに応答しなくなることです。deferToThread が動作すると思っていましたが、どこに問題があるのか​​を誤解していると思います。

任意の提案...この必要な動作をサポートしている場合、Cherrypy など、他のものを使用することにオープンです。


編集

@Troy: これが原子炉のセットアップ方法です

GIL に関する限り、sys.setcheckinterval() の値を小さい値に変更して、データのロックを解除して読み取りできるようにすることは実行可能なオプションでしょうか?

0 投票する
2 に答える
2582 参照

python - CherryPy は堅牢な Web サーバーですか (つまり、Apache のように大きな負荷の下で信頼できますか)?

私の知る限り、 CherryPyは純粋にPythonで構築されており、Cなどよりも明らかに遅いので、私は疑問に思っています。これは、開発/テスト環境にのみ適しているということですか、それとも、現在Fast CGIで Apache を使用しているように、 NGINXの背後で使用できますか?

0 投票する
1 に答える
600 参照

tree - 構成ファイルを介してwsgiアプリをcherrypyのルートにどのように割り当てますか?

構成ファイルを介してwsgiアプリをcherrypyのルートにどのように割り当てますか? 「http://localhost:8080/」というリクエストを自分の wsgiapp にルーティングしたいと思います。次のように、cherrydを使用して、構成ファイルでcherrypyサーバーを起動しています。

呼び出しは次のとおりです。

config.cfg ファイルは次のとおりです。

myapp.py モジュールは次のとおりです。

エラーメッセージは次のとおりです。

0 投票する
2 に答える
440 参照

python - cherrpy 組み込みデータ ストレージの使用方法

OK、チェリーピーのドキュメントをしばらく読んでいますが、簡単な例はまだ見つかりません。簡単な Hello World サイトがあるとします。データをどのように保存すればよいでしょうか? たとえば、cherrypy を使用して a = 1 と b =2 を辞書に保存するとします。構成ファイルは地獄のように混乱しています。単純なサイトの値をチェリーピーに保存する非常に単純な例はありますか?

これが私のコードです。何が間違っていますか? tmp ファイル c:/tmp を作成しました。構成ファイルはどこにありますか? また、どこに配置すればよいですか? このコードは、構成を追加する前に機能しましたか?

0 投票する
3 に答える
5186 参照

python - CherryPy3.1で静的ファイルを提供する際の問題

CherryPyWebアプリから動的に生成された出力を伴う静的XMLスタイルシートを提供するのに問題があります。静的テキストファイルを提供する私のテストケースでさえ失敗します。

静的ファイルblah.txt/static、アプリケーションのルートディレクトリのディレクトリにあります。

私のメインサイトファイル(conesearch.py​​にはCherryPy ConeSearchページハンドラークラスが含まれています):

そして、site.config私には次のオプションがあります:

どこcurrent_dir = os.path.dirname(os.path.abspath(__file__))conesearch.py

ただし、私の単純なテストページ(http://www.cherrypy.org/wiki/StaticContentから直接取得)は404で失敗します。

127.0.0.1:8080/static/blah.txtにアクセスしようとしていますが、これは私の考えではAOKであるはずです。何か考えや提案はありますか?

乾杯、

サイモン

0 投票する
1 に答える
607 参照

python - Cherrypy でページ定義を動的に作成する

私はCherryPyのドキュメントを見回してきましたが、私がやりたいことについて頭を悩ませることはできません. 私はそれがCherryPyのものよりもPythonのものかもしれないと思う...

私の現在のクラスは次のようになります。

明らかに、ここには多くの繰り返しがあります。

managerUtils.py には、次のような dict があります。

わかりました、それで少し単純化した見方ですが、あなたはその考えを理解していると確信しています.

私は次のようなことができるようにしたい:

これを行う方法のアイデアはありますか?

1つの答えは、次のことを提案しました:

それがうまくいくと私は信じています:

私が望むものではなく、次のとおりです。

あなたが提案したことをすると、次の404エラーが発生します。

0 投票する
2 に答える
2264 参照

python - Cheetah with Cherrypy:ベーステンプレートをロードする方法、および開発中の変更時に自動的にロードする方法

私はcherrypy+cheetahアプリに取り組んでおり、開発エクスペリエンスを向上させたいと考えています。

事前に手動でテンプレートをコンパイルすると、すべてが機能します。(更新:これは本番環境での動作です:プリコンパイル、*。tmplを出荷せず、通常のpythonモジュールとしてテンプレートをロードします。)ただし、開発中は、参照されるたびにテンプレートをロードするだけで、アプリケーションを強制終了して再起動する必要はありません。私が直面している問題がいくつかあります。

  1. 基本テンプレートから継承するテンプレートがある場合、インポートエラーが発生します(基本テンプレートが見つかりません)。実験中に実際に動作させたと思いますが、残念ながら保存できず、動作させることができません。
  2. 1.動作していると仮定します。ベーステンプレートでも編集内容が再起動せずに取得されるようにするにはどうすればよいですか。

以下は、問題を実証する必要がある私のサンプルアプリケーションです。ディレクトリ構造は次のとおりです。

t.py:

base.tmpl:

index.tmpl:

次のように実行します。

0 投票する
1 に答える
721 参照

python - ASP.NETメンバーシップに代わるオープンソース

私は現在、ますます複雑になるユーザー/役割/権限管理要件を持つPythonWebアプリをサポートしています。現在、独自のユーザー、グループ、権限などのコードをローリングし、データベースをサポートしています。

ますます複雑になるカスタムソリューションを作成し続ける際にセキュリティの問題をリスクにさらすのではなく、ユーザーの認証と承認の管理に役立つASP.NETメンバーシップのようなものを見つけたいと思います。見てみる価値のある同様のプロジェクトはありますか?

0 投票する
2 に答える
1698 参照

python - 同じドメイン、異なるポートの CherryPy セッション

以下のスクリプトを検討してください。2 つのサブプロセスが起動され、それぞれが CherryPy アプリです (両方を終了するには、Ctrl+C を押すか、システムにある KeyboardInterrupt コンボを押します)。CP 3.0 で実行する場合 (「StartServer」の 3.0/3.1 固有の行を変更するように注意してください)、次にアクセスします。

http://localhost:15002/

...空の辞書が表示されます。次にアクセスします。

http://localhost:15002/set?val=10

http://localhost:15002/

...そして、新しく入力された辞書が表示されます。次にアクセスします。

http://localhost:15012/

...そして戻る

http://localhost:15002/

...そして何も変わっていません。

CP 3.1 で同じことを試みると ("StartServer" の行を思い出してください!)、最後のステップに到達すると、dict は空になります。これは、Windows と Debian、Python 2.5 と 2.6 で発生します。

ファイルストレージへの変更、ストレージパスの分離など、あらゆる種類のことを試すことができます...唯一の違いは、セッションが消去される代わりにマージされる可能性があることです. これに関する別の投稿も読んだことがありますが、セッションツールの構成キーをグローバル構成ではなくアプリ構成に配置するという提案がありますが、アプリが独立して実行されるこの使用法には関係ないと思います.

独立した CherryPy アプリケーションが互いに干渉しないようにするにはどうすればよいですか?

注: 私はもともとCherryPy メーリング リストでこれを尋ねましたが、まだ応答がないので、ここで試しています。大丈夫だと思います。