🌐

ラズパイ上のFlaskローカルサーバーをngrokでアクセスする

2023/08/11に公開

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の起動:

以下のページ:
https://dashboard.ngrok.com/get-started/setup
から 2. Connect your accountに書かれているトークンをコピーして、以下のコマンドを実行:

$ ngrok authtoken xxxxxxxxxxxxxxxxxxx

app.pyを実行しているターミナルとは別のターミナルを開き、
以下のコマンドを実行:

$ ngrok http 5000

すると、ngrokが5000ポートのローカルサーバーを公開し、公開用のURLが生成されます。
ダッシュボードに表示されたURLにアクセスすると、Flaskアプリケーションが表示されました。

参考:

ラズパイ上のPython+FlaskローカルWebサーバにネットからngrok経由でアクセス

僕の環境では、一部コマンドが異なりました。

GitHubで編集を提案

Discussion