*

IoT開発(10)
RaspberryPiをIoTゲートウェイにする(IV)
Appサーバーのセットアップ

公開日: : 最終更新日:2020/08/13 Python, RaspberryPi, 開発, 電子工作

この記事は、下記の記事の続きです。

IoT開発(6) RaspberryPiをIoTゲートウェイにする(I) VM上に開発環境を構築
IoT開発(7) RaspberryPiをIoTゲートウェイにする(II) VM上の開発環境にWEBサーバーをインストール
IoT開発(8) RaspberryPiをIoTゲートウェイにする(II)-1 MariaDBにPHPからアクセス
IoT開発(9) RaspberryPiをIoTゲートウェイにする(III) MariaDBのセットアップ

前回までの記事で、RaspberryPiOS上にWEBサーバー(nginx)とデータベース(MariaDB)をセットアップできました。
そこで今回は、Appサーバーをインストールして、「Hello, World!」を表示するまでを実行します。

1.Appサーバーの選択

Appサーバーには、uWSGIを使用します。
また、フレームワークには、Flaskを採用します。
即ち、「nginx + uWSGI + Flask」という構成になります。
プラットフォームがRaspberryPiということもあり、AppのフレームワークとしてFlaskを採用しています。
そして、Flaskと相性がいい(?)uWSGIをAppサーバーに選択することとしました。

2.インストール

まず、FlaskとuWSGIをインストールします。
インストールは、以下のコマンドにより行います。

これで、uWSGIおよびflaskのインストールは完了です。

3.Hello,world!

インストールが完了したら、次は準備です。
…とは言っても、ここでは何か設定ファイルを編集する、ということは行いません。以下のコマンドを実行して、Pythonコードを配置するディレクトリを作成、カレントディレクトリを移動します。

次に、以下のようなPythonコードを作成します。
ファイル名は、なんでもよいのですが、ここでは「hello.py」としてきます。

上記コードを作成したら、次は、uWSGIを起動します。
起動のためには、以下のコマンドを入力します。

ここで、「–http」オプションで「0.0.0.0」を指定していますが、これは「hello.py」をパブリックIP、即ち外部から参照する際のIPアドレスで公開する、ということを示します。
その後ろの「8000」については、ポート番号です。
最後の「–callable」は、hello.pyで実行するアプリケーションで呼び出し可能なモノ、即ち、hello.pyの「app」に対応します。
(実際に、例えばhello.py中のappをapp2に変更、uWSGIの「–callable」の値を「app2」に変更すれば、同様の結果を得ることができます。)
上記コマンドを実行後、任意のブラウザで

にアクセスすると、以下のような「Hello, world!」の画面が表示されます。

iot_raspberrypi_gateway_004_001

4.まとめ

これで、「nginx + uWSGI + Flask」の環境でページを表示できるようになりました。
飾り気が一切なく、また平文ですが、まずは第一歩です。
次は、HTML形式のデータをページを表示できるようにしてみようと考えています。

ではっ!

関連記事

iot_raspberrypi_gateway_001_eye_catch

IoT開発(6)
RaspberryPiをIoTゲートウェイにする(I)
VM上に開発環境を構築

どもです。前回までの記事で、ESP-WROOM-02/ESP32を電池で駆動して、センサーのデータを

記事を読む

eclipse_4.3_kepler

elicpse/CDTでのgdbでのソースを追従したデバッグができない問題

どもです。 今回のエントリーは、Eclipse上でgdbを利用したデバッグ中に発生する問題について

記事を読む

source_trail_eye_catch

Sourcetrailを試してみました

どもです。 つい最近、ソースコードの解析に役に立ちそうなツールを見つけたので、ここで少し紹介をしま

記事を読む

MY_MFC_LOGO

MFCプログラミング(3):クリップボードへのデータ形式の登録

どもです。 今回も、クリップボードネタです。 1.背景(簡単に) アプリケーションにコピー

記事を読む

RasPi_Qt

Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。

どもです。 RaspberryPiのOS:Raspbianの新しいバージョンが、少し前(…なの

記事を読む

source_trail_eye_catch

Sourcetrailを試してみました(2)-Eclipseと連携

どもです。 前回のエントリで、ソースコードを解析するオープンソース「Sourcetrail」を紹介

記事を読む

no image

C言語でEV3開発(9)-opOUTPUT_SPEEDコマンド

どもです。 今回のエントリーでは、前回に引き続きEV3のモーターを動かしていきます。 ただし、単

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

raspberry-pi

RaspberryPi起動時にpigpiodがスタートしないようにする

どもです。 これまでpigpioを使用してRaspberryPiからLEDをチカらせる方法など、い

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

iot_raspberrypi_gateway_001_eye_catch
IoT開発(12)
RaspberryPiをIoTゲートウェイにする(V)
nginxとuWSGIの連携

どもです。このエントリは、以下のエントリの続きです。 IoT開発(6

iot_at_home_eye_catch
IoT開発(11)
ESP-WROOM-02を長時間駆動させた

どもです。この記事は、下記の記事の続き、「測定可能な期間」の結果発表で

iot_raspberrypi_gateway_001_eye_catch
IoT開発(10)
RaspberryPiをIoTゲートウェイにする(IV)
Appサーバーのセットアップ

この記事は、下記の記事の続きです。 IoT開発(6) Raspb

iot_raspberrypi_gateway_001_eye_catch
IoT開発(9)
RaspberryPiをIoTゲートウェイにする(III)
MariaDBのセットアップ

どもです。今回のエントリは、以下のエントリの続きです。 IoT開発(

iot_raspberrypi_gateway_001_eye_catch
IoT開発(8)
RaspberryPiをIoTゲートウェイにする(II)-ex
MariaDBにPHPからアクセス

どもです。 このエントリは、前回のエントリの追加項目です。 前

→もっと見る

PAGE TOP ↑