0

シリアル ポートから情報を取得し、そのグラフをユーザーに表示する簡単なプログラムを Python で作成するのに忙しくしています。(これは基本的に、シリアル ポートに接続されたエネルギー メーターであり、Python プログラムは電圧、電流、および電力曲線を表示する必要があります。)

ただし、このプログラムをインターネットからアクセスできるようにしたいと考えています (つまり、リモート コンピューターで Web ブラウザーを開き、ホスト PC の IP アドレスとポートを入力すると、電圧、電流、電力曲線に直面します)。

私はPythonとオブジェクト指向プログラミング言語全体に非常に慣れていません。私のプログラミングのほとんどは、過去に C# で行われていました。

Python プログラムを何らかの形式の Web アクセス可能なプログラム/スクリプトに「移植」する比較的簡単な方法はありますか。おそらく、ホスト マシンで実行されている Apache サーバーと組み合わせて使用​​することでしょうか?

これについての助けは大歓迎です。たとえそれが私を正しい方向に向けているとしても。

本当にありがとう。

編集:私は今、CGI と Apache をいじっており、Apache で .py ファイルを cgi-binaries として実行できることがわかりました。しかし、完全な python プログラム (Qt フォームと多くのプッシュ ボタンとコンボ ボックスを含む) を実行しようとすると、サーバーのタイムアウトが表示されるまで、ページが永遠に読み込まれ続けました。これは FastCGI ではなく CGI を使用しているためですか? または、Qt フレームワークを HTML に「移植」することはできませんか? HTML コードから新しい GUI フレームワークを作成する必要がありますか?

本当にありがとう。

4

4 に答える 4

2

最も簡単な方法 (マシンのセキュリティを損なうことなく) は、python スクリプトがシリアル データを読み取り、matplotlibを使用して毎分いくつかのグラフを作成し、Web サーバーがそれらを PNG ファイルなどとして見つけることができる場所に書き込むことです。

次に、グラフを表示する Web ページを作成する必要があります。安全のために、スクリプトが作成した PNG ファイルを参照する静的ページを作成することをお勧めします。おそらく、ページが定期的に更新されるように、何らかの javastript を挿入します。

最後になりましたが、Web サーバーが必要です。このような静的コンテンツを提供するには、 nginxをお勧めします。

于 2012-09-23T12:57:31.627 に答える
1

Django: https://www.djangoproject.comなど、Web 開発用の Python ベースのフレームワークが多数あります。Django を使用して Python で Web サイトを開発し、いずれかのビューからスクリプトを呼び出すだけです。また、Django プロジェクトを Apache でデプロイできます: https://docs.djangoproject.com/en/1.2/howto/deployment/modwsgi/

于 2012-09-23T12:35:53.533 に答える
0

最も単純なソリューションは、CGIhttp: //docs.python.org/library/cgi.htmlおよびWSGIhttp : //docs.python.org/library/wsgiref.htmlのようです。

ただし、どちらの場合も、Webアプリケーションはセキュリティの問題で知られていることを思い出してください。初心者の場合、通常、気付かないうちに多くのセキュリティホールを開きます...しかし、インターネット上の悪意のある人は気付くでしょう。少なくともユーザー名/パスワードでページを保護することをお勧めします。

于 2012-09-23T12:43:19.013 に答える
-1

Google App Engine で Python を実行できるのに、独自の Web サーバーを実行して維持する必要はありません。簡単で無料で、ほぼ 100% 信頼できます。ウェブサーバーは Google が処理するので、Python アプリケーションを構築するだけで済みます。シリアル ポート クライアントは、App Engine アプリケーションにデータを送信できます。

開始するためのチュートリアルは次のとおりです。http://aleatory.clientsideweb.net/2012/08/16/financial-charts-app-engine-tutorial-web-scraping/

App Engine にデータを送信する Python の例を次に示します: http://aleatory.clientsideweb.net/2012/08/16/financial-charts-app-engine-tutorial-web-scraping/

于 2012-09-23T13:39:49.823 に答える