見出し画像

Flask Web Development 7~10ページ

一番最初に書くスクリプトを解説していきます。

from flask import Flask
app = Flask(__name__)

@app.route('/')

def index():
    return '<h1>Hello World!</h1>'

if __name__ == '__main__':
    app.run(debug=True)


from flask import Flask
app = Flask(__name__)

from flask import Flask => Web Server Gateway Interface(WSGI)を呼び出すために、flaskモジュールを読み込んで、Flaskのクラスを作成します。
(from A import Bは A moduleからBというクラスをimportするという意味です。)

app = Flask(__name__) => app という変数に代入しています。

__name__はPythonのコードを実行するときに自動的に作られた変数で、実行しているプログラムのモジュール名が自動的に代入されます。hello.pyというファイル名をモジュールとして使うのであれば、__name__にはhelloが代入される。
if __name__ == '__main__':
このif文が書かれているコードがモジュールとして他のコードから実行された時、「__name__」にはモジュールの名前が入る。
このif文が書かれているコードが直接のプログラムとして実行され時、「__name__」には「'__main__'」という名前が入る。
そしてこのif文が成立するのは「__name__」という変数が「'__main__'」になったとき、つまり直接実行された時。

(めっちゃ分かり易い!)

ここで、Flaskに戻ると
Flask クラスのコンストラクタに必要な引数は、アプリケーションのメインモジュールまたはパッケージの名前だけです。
Flaskでは、ほとんどの場合__name__を代入して動かすそうです...。

@app.route('/')
def index():
   return '<h1>Hello World!</h1>'

@デコレーターは入力として関数をひとつ取り、別の関数を返す関数です。

ここでは、route()でURLとfuncitonを紐付けて、ルートURL(http://127.0.0.1:5000'/')でindex()を表示します。
(WSGIとやり取りするためのにルーティングというクラスを使っている)

if __name__ == '__main__':
   app.run(debug=True)

app.run()でWeb Serverを起動させます。
debug=Trueはエラー内容を出力させる設定です。開発段階ではTrue、本番ではFalseとします。
本番でFalseとすると、情報漏洩してしまいます。

以上のスクリプトを起動してhttp://127.0.0.1:5000/をWebブラウザーにアクセスするとHello World!と表示されます。

この記事が気に入ったらサポートをしてみませんか?