ホームページ >ウェブフロントエンド >htmlチュートリアル >Raspberry PiのWEBの簡単な実装 control_html/css_WEB-ITnose

Raspberry PiのWEBの簡単な実装 control_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:26:321686ブラウズ

最終的な効果は以下のとおりです:

使用した知識: Python Bottle HTML Javascript JQuery Bootstrap AJAX、そしてもちろん Linux

放っておいてください、たくさんあります…それについては少し話します少しずつ...

最初に最終的なソースコードを投稿してください:

   #!/usr/bin/env python3from bottle import get,post,run,request,template@get("/")def index():    return template("index")@post("/cmd")def cmd():    print("按下了按钮: "+request.body.read().decode())    return "OK"run(host="0.0.0.0")

はい、10 文だけです。1 つずつ説明します:

1. # !/usr/bin/env python3、シェルにこれを伝えますファイルは Python ソース コードであり、bash で python3 を呼び出します。このコードを説明しましょう

2. from bottle import get,post,run,request,template、使用したメソッドとオブジェクトはボトル フレームワークからインポートされます

次の文は定義します2 つのルート、1 つは "/"、1 つは "/cmd"、前者は get タイプ (@get で装飾)、後者は POST タイプ (@post で装飾) です

最初のルートは非常に単純です。パスが「/」であるため、インデックス テンプレート (テンプレートは html ) を読み取り、クライアント (ブラウザー) に送信します。つまり、たとえば、Raspberry Pi の IP アドレスは 192.168.0.10 です

次に、http://192.168.0.10:8080 を使用して「/」ルートにアクセスします (ボトルのデフォルトのポートは 8080)

同様に、2 番目のルートのパスは「/cmd」、つまり http:/ にアクセスします。 /192.168.0.10:8080/cmd は 2 番目のルートにアクセスします

最後の文: run(host = " 0.0.0.0 " ) は、ブラウザ経由でインターフェイスにアクセスできるように、ボトルの run メソッドを呼び出して http サーバーを確立します。 。

これらのコードの機能を以下で詳しく説明します:

最初のルートの機能は、HTML (index.tpl) ドキュメントをブラウザにスローして、このインターフェイスを表示することです:

このソース コードファイルは次のとおりです。

  <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>遥控树莓派</title>    <link href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen">    <script src="http://code.jquery.com/jquery.js"></script>    <style type="text/css">        #up {            margin-left: 55px;            margin-bottom: 3px;        }        #down {            margin-top: 3px;            margin-left: 55px;        }    </style>    <script>        $(function(){            $("button").click(function(){                $.post("/cmd",this.id,function(data,status){});            });        });    </script></head><body><div id="container" class="container">    <div>        <button id="up" class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-up"></button>    </div>    <div>        <button id='left' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-left"></button>        <button id='stop' class="btn btn-lg btn-primary glyphicon glyphicon-stop"></button>        <button id='right' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-right"></button>    </div>    <div>        <button id='down' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-down"></button>    </div></div><script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script></body></html>

この内容は少し多くなりますが、非常に単純です。jquery bootstrap の 2 つのフロントエンド フレームワークを参照し、5 つのボタン (6c04bd5ca3fcae76e30b72ad730ca86d36cc49f0c466276486e50c850b7e4956 間のコード) を追加するだけです。 )。もちろん、ブートストラップの組み込みの上、下、左、右、および停止アイコンを使用し、これら 5 つのボタンの ID を上、下、左、右、および停止として定義し、次のキー コードを記述しました。

    $(function(){            $("button").click(function(){                $.post("/cmd",this.id,function(data,status){});            });        });  

そうです、以上です 3 行のコード…

1 行目と 2 行目でクリック イベントをすべてのボタン (ボタン) にバインドし、3 行目で jquery の post メソッドを呼び出して this.id (の ID を送信します)クリックされたボタン) をパス「/cmd」の下に追加します。この時点で、Python コードの 2 番目のルートが機能し、Web ページ上でクリックされたボタンの ID を受け取り、「ボタンが押されました: XXX」を出力しました

Ofもちろん、ここにいくつかの if ステートメントを記述して判断することで、実際のニーズに応じて実際の制御を行うことができます。たとえば、Python で Wireringpi2 を呼び出して Raspberry Pi の GPIO を制御することができます。

完全なソース コードは次のとおりです (ボトル フレームワークに付属しており、解凍後に直接実行するだけです)

http://pan.baidu.com/s/1qWYPHQs

yafeng による投稿

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。