FlaskによるWebサーバ

1.Flaskについて

FlaskはPythonを使った軽量のWebのプラットフォームである。
ドットインストールでは残念ながらFlaskの解説が無い。

2.FlaskでまずはWebサーバを立てる

(1)環境

・Linuxサーバ(AWS)に入れてた。
・FWで5000番を空ける
・フォルダはルートのままにした。apacheのようにデフォルトが/var/www/htmlになっているわけではなさそうだ。

(2)設定

❶python、Flaskのインストール

yum -y install python3
pip3 install Flask

❷超シンプルなWebサイト
Pythonのファイルを作成する。a.py
もっともシンプルなソースコードは以下

#!/bin/python3
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello():
    return "Hello!"

appにはファイル名が入っている。ためしに、このファイル名をa.pyとして、print(app)を実行してみると、「」となった。
❸実行権限を付与して実行

chmod 755 a.py    #実行権限の付与
python3 a.py    

・コマンド実行時に python3 を付けているが、シーバンを書いているので、そのまま./a.pyでも可能
・&をつけてバックグラウンド処理もいいかも
・ただ、このままだとSSHから抜けると落ちると思う。以下がいいだろう。

nohup ./a.py &

❹プロセスの確認
プロセスを確認しよう

# ps -aux | grep a.py
root      3520  0.6  2.6 390476 26320 pts/0    Sl   22:24   0:00 /bin/python3 . a.py
root      3524  0.0  0.0 119420   988 pts/0    S+   22:24   0:00 grep --color=auto a.py

プロセスを消す場合はkill -9
❺インターネットからアクセスできるようにする
・awsのセキュリティポリシーでポートを空ける
・上記のソースコード(a.py)に、どこからでもアクセスできるように、host='0.0.0.0'を加える。

if __name__ == "__main__":
    app.run(host='0.0.0.0',port='5000')

❻ブラウザでアクセスする
http://x.x.x.x:5000 でアクセスすると、Hello の文字が見えるだろう。
めちゃくちゃ簡単である。

(3)複数のサーバを起動する。

これも簡単。
上記のファイルをもう一つ作り、port='5001'にし、実行すればいいだけ。(AWSやFWなどで5001を許可する必要はあるが)