🌐
ラズパイ上のFlaskローカルサーバーをngrokでアクセスする
What is Flask ?
Flaskは、Pythonで書かれたウェブアプリケーションフレームワークです。
Flaskを使用すると、 Pythonで書かれたウェブアプリケーションをブラウザで表示することができます。
1. Flaskのインストール:
$ pip install Flask
2. Flaskアプリケーションの作成:
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Web App with Python Flask!'
app.run(host='0.0.0.0', port=5000)
アプリケーションの実行:
$ python app.py
コードの説明:
from flask import Flask
app = Flask(__name__)
-
from flask import Flask
: FlaskフレームワークからFlaskクラスをインポート -
app = Flask(__name__)
: Flaskクラスのインスタンスを作成。このインスタンスは, ウェブアプリケーションを表す。
@app.route('/')
def index():
return 'Web App with Python Flask!'
-
@app.route('/')
: ルートURL(/)に対して関数をマッピング。このデコレータは, 指定したURLにアクセスがあった際に関数が呼び出される。 -
def index():
: 上記のデコレータによって呼び出される関数。
app.run(host='0.0.0.0', port=5000)
-
app.run()
: Flaskサーバーを起動し、指定したホストとポートでアプリケーションを実行。
What is ngrok ?
ngrokは、ローカルサーバーをインターネットに公開するためのツール。
ngrokを使用すると、ローカルサーバーを外部からアクセスできるURLに変換することができます。
1. ngrokのインストールと動作確認:
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
$ unzip ngrok-stable-linux-arm.zip
$ chmod +x ngrok
$ sudo mv ngrok /usr/local/bin/
$ ngrok version
chmod +x ngrok
で解凍されたngrokファイルに実行権限を付与し、sudo mv ngrok /usr/local/bin/
でシステムのPATHに追加して、どのディレクトリからでもngrokコマンドを実行できるようにします。
2. ngrokの起動:
以下のページ:2. Connect your account
に書かれているトークンをコピーして、以下のコマンドを実行:
$ ngrok authtoken xxxxxxxxxxxxxxxxxxx
app.pyを実行しているターミナルとは別のターミナルを開き、
以下のコマンドを実行:
$ ngrok http 5000
すると、ngrokが5000ポートのローカルサーバーを公開し、公開用のURLが生成されます。
ダッシュボードに表示されたURLにアクセスすると、Flaskアプリケーションが表示されました。
参考:
ラズパイ上のPython+FlaskローカルWebサーバにネットからngrok経由でアクセス
僕の環境では、一部コマンドが異なりました。
Discussion