2016-05-24 15 views
0

Djangoを使用して自分のRaspberry PiのWebインターフェイスを作成しています。Djangoを使用してHTMLテンプレートからPythonコマンドを実行

私はDjangoテンプレート内のHTMLボタンをクリックするだけで、表示を点灯させるPythonコードを実行しようとしています。

cd rpi/ 
sudo python bubbles.py 

HTMLのIDに応じたの.pyファイルを変更するようにPythonコード は、私が欲しいかもしれませんが^ことを実行します:

は、私は現在、コマンドラインでこれを実行することにより、LED表示を点灯

sudo python file_name.py 

とにかく、このスクリプトはWebブラウザで実行する必要がありますので、私はビューを作成しました...しかし、私はどのようにビューにスクリプトをリンクするのか分かりません。 マイテンプレート:

graphics_list.html

{% extends "base.html" %} 
{% block content %} 
<h1>{{ title }}</h1> 
<h1> Scrolling Raspberry Pi LED Selection </h1> 
{% for obj in object_list %} 

<h3><a href='{{ obj.get_absolute_url }}'>{{ obj.name }}</a></h3> 

    <img src="{{ obj.image.url }}" alt="..." class = "img-responsive"><br> 
    <p><a href="{{ need_to_execute_script_somehow }}" class="btn btn-primary" id = "{{ obj.name }}" role= "button">Use</a></p> 

{% endfor %} 
{% endblock content %} 

私は本当にどこ、私はAJAXはこのために使用する必要があり、PHPを開始するのか分かりませんか?

+0

各リンクにプレフィックスを付ける必要があります。例えば、 '/ script/'となります。次に、Djangoを使用して '/ script/'にリクエストをルーティングし、 'name'ファイルを実行します。 –

答えて

1

コードの質問に答える代わりに、私はあなたのアプローチの質問に答えます。

このスクリプトをインターネットから実行するには、Webサーバーが必要です。これはあなたのWeb(HTTP)要求を処理するエージェントになります。これらはすべての種類の味に来る。 Djangoは複雑なWebサイトを簡単に作成できるように設計されたWebフレームワークです。 Djangoには、コンテンツを提供するために使用するWebサーバーも付属しています。

あなたにとって最も関連性の高い部分は、これです:Djangoはあなたのゴールには過剰です。混乱の原因になることがありますが、すでに起動して実行している場合は、それに固執するのが最善かもしれません。 Djangoを使用すると、Webサーバーを快適に使用できない場合は、時間を節約できます。

私はこのような小さな目標、に問題を分解することから始めたい:

  • DjangoのWebサーバを始めます。 WebブラウザからサーバーにアクセスするときにDjangoのサンプルページを見るだけで十分です。
  • あなたが望むどのようなビューでも "レンダリング"(ブラウザで表示)できるように、models.pyを編集する方法を学んでください。
  • 上記のVIEWに別のURLへのリンクがあるようにしてください(あなたのWebサーバーにはまだあります)。これにより、サーバーに別のURLを要求します。このurlはmodels.pyの別のメソッドで処理されます。これにより、別のビューがレンダリングされます。今のところ、この他のビューに「はい、あなたはLEDを点灯しました」または「LED点灯が完了しました」と表示されます。このビューをレンダリングするために必要な新しいメソッドは、スクリプトを実行するためにコードをフックする場所です。
  • スクリプトを実行する代わりに、コンソールに何かを印刷して、「フック」が機能していることを確認してください。 "*****すぐに私のスクリプト****を実行する必要があるとこれを置き換えてください"コンソールでそれを探してください
  • 次に、DjangoからPythonを実行してそこにドロップする方法を学びます。

ソリューションはここにある:AJAXについてExecuting Python script from Django shell

何を?あなたのためのAjaxは、わずかなユーザーインターフェイスの改善につながります。あなたがコアソリューションを稼働させるまで、私はそれを完全に忘れてしまいます。ウェブからスクリプトを実行する必要はありません。

+0

私は現在、django開発サーバーで自分のdjangoアプリケーションを実行しています。後で別のタイプのWebサーバーに切り替える予定です。 – user1920076

+0

返信いただきありがとうございます。私はそれをDjango Shellから実行し、それを何とか私のビューに実装しようとします。そして、LEDライトビューの追加ロジックを追加します – user1920076

関連する問題