ホームページ >ウェブフロントエンド >htmlチュートリアル >Raspberry PiのWEBの簡単な実装 control_html/css_WEB-ITnose
最終的な効果は以下のとおりです:
使用した知識: 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 による投稿