0

Python で記述されたカスタム ビジネス ロジックがあります - C#/.Net で直接記述できないさまざまな理由があります (時間の制約など)。

IronPythonを使用してPythonプログラムを.Netに統合しようとしましたが、できません( lxmlが理由の1つです)。

私は、この python ロジックを .Net が呼び出すことができる Web サービスとして公開するという、より単純なソリューションに目を向けています。

-

最初は、Pythonコードを別のドメインでホストする必要があると思いました..しかし、同じサーバーにPythonをインストールして、このPythonサービスを実行できることに気付きました!!

機能は単純です。.Net は URL を渡し、Python プログラムはデータを長い文字列として返します。

1 .) これを行う最も簡単な方法は何ですか?
2 .) web2py/werkzeug のようなフレームワークを使用する必要がありますか?

4

2 に答える 2

0

Python コードを com オブジェクトとして公開することを検討しましたか? 私は過去にこれをしました。

http://oreilly.com/catalog/pythonwin32/chapter/ch12.htmlの「Python での COM オブジェクトの実装」セクションを参照してください。

.Net 環境にどのように適合するかはわかりませんが、実行可能です。

その他、ローカル環境でのみ使用される場合は、単純な XMLRPC サービスにラップするだけで調査できます。その場合、フレームワークの領域 (Django など) に移動する必要があります。

于 2012-08-05T05:22:34.007 に答える
0

トルネードを試してみようと思います。私は過去にそれを使用していましたが、習得するのは非常に簡単でした。

とにかく、(Tornado を使用して) ローカルで実行される小さな Web サービスを準備することをお勧めします。この Web サービスは、同じマシン上で実行されている任意のコードから簡単にアクセスでき、必要に応じて別のマシンからもアクセスできます。

ああ、Tornado は Django よりもはるかに軽量です...

(以下のサンプル コードは、Tornado Web サイトの Hello-World サンプルです。Tornado の使い方がいかに簡単かを示すために、ここにコピーしました):

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        # put your calculation logic in here (instead of "Hello World"
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

Tornado の大きな利点の 1 つは、単純なタスクを簡単に実行できることですが、より洗練されたものが必要な場合に備えて、簡単に使用できることです。

ああ、もう 1 つ心に留めておくべきことがあります。あなたのコードが実際に何をしているのかはわかりませんが、REST を念頭に置いて Web サービスの API を設計することを検討することをお勧めします。

于 2012-08-05T05:47:14.890 に答える