1

コントローラー ページ テンプレートと、アクションを処理するコントローラー Python スクリプトがあります。このフォームとアクション スクリプトを Web 経由で追加できたことは素晴らしいことです。そのため、コードにわずかな変更を加えるたびに Plone インスタンスを構築して再起動する必要がありません。問題は、私の python スクリプトがコンテンツ オブジェクトのリストを配列として構築し、JSON 配列をリモート サーバーに送信される REQUEST 本文として POST することによって、オブジェクトを別のサーバーと共有することになっていることです。"[{'param1':val1, 'param2':val2},{'param1':val3, 'param2':val4}]" のように見える arrayOfObjects という配列があります。

import json

...other stuff...

sJSON = json.dumps( arrayOfObjects )

上記のコードは標準の Python インタープリターで動作しますが、Plone は、ZMI で管理されている Web 経由の Python スクリプト用の多くのモジュールの使用を制限しています。これは優れたセキュリティ機能ですが、Web を通じてスクリプトの開発を続け、すべてが完成したら、アドオン製品内のファイル システム ストレージに移動したいと考えています。AccessControl パッケージの allow_module 機能でインポートが有効になるはずだと聞いたことがありますが、それでもファイルシステム上でライブにする必要があるように思えます。私が構築している機能にとって重要な Python スクリプトと JSON モジュールの両方を Web 経由で編集する方法はありますか? 事前に情報をありがとう!

PS- 不十分な権限画面は、json モジュールをインポートしたときに表示されるものです (予期される動作 - エラーではありません)

4

1 に答える 1

4

通常の Python コードのどこかに、次を追加します。

from AccessControl import allow_module
allow_module('json')

モジュールをホワイトリストに登録します。はい、明らかなセキュリティ上の理由から、これはファイル システム ベースの Python から実行する必要があります。

于 2013-08-22T19:52:05.373 に答える