0

私がまとめているプロジェクトがあり、これまでのところうまくいっています。

しかし、私はPythonの賢明な開始点について少し迷っています。プロジェクトの基本は、xBee ネットワークを介してシリアル経由で Python プログラムからコマンドを受信するワイヤレス リンク (セットアップ済み) を介して Arduino によって制御される照明システムです (この部分はコード化され、機能しています)。プロジェクトをインターネット経由で制御できるようにしたい。

Pythonプログラムがセットアップがかなり簡単なhttpサーバーを実行するように実行することを考えていました。

過去にPythonで遊んだことがないので、ここで問題が発生します。ページでクリックされた内容に応じて、プログラムが要求に応答してコードを実行するようにするにはどうすればよいですか?

誰でも私を正しい方向に向けることができますか

4

3 に答える 3

4

任意のポートでメッセージをリッスンする Tornado などのフレームワークを使用して、サーバー アプリケーションを作成できます。

ただし、Web インターフェイスを構築したいようです。このためには、Web フレームワークを選択する必要があります。私のお気に入りのマイクロ フレームワークはFlaskです。リンクしたばかりの彼らのクイックスタートは、単純なサイトを実行するのがいかに簡単かを示しています。

次に、ユーザー インターフェイスの各アクションの関数を記述します。これらの各機能は、関連付けられた URL にアクセスするリンク (またはボタン) をユーザーがクリックするとアクティブになります。

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/dim_lights/<room>')
def dim_lights(**kwargs):
    dim_lights_for_room(kwargs['room'])

'index.html'テンプレートには次のようなリンクが含まれます<a href="/dim_lights/lounge">Dim the Lights in the Lounge</a>.

それは理にかなっていますか?

于 2012-09-09T10:21:17.377 に答える
1

単一の Python アプリでシリアル ポートと Web アプリを使用している場合は、twisted を使用します。これは、シリアル ポートや Web 要求などを処理するイベント ループです。一種のフレームワークでもあります。他のほとんどの「フレームワーク」は、最初からシリアル ポートをサポートしていません (イベント ループの一部として、つまりデータ受信時のコールバック)。 http://twistedmatrix.com/trac/

于 2012-09-09T10:50:43.943 に答える
0

プロジェクトにリンクする Web ベースのアプリケーションを作成しようとしている場合は、Flaskをフレームワークとして使用し、おそらくGunicornを http サーバーとして使用することができます。Flask のドキュメントを読んで、Flask をよりよく理解してください。そのサイトには、python web 開発者初心者向けのチュートリアルがあります。

次に、ハードウェア用のスクリプトをいくつか作成する必要があり、それを Web アプリに統合できます。

于 2012-09-09T10:32:42.280 に答える