【Flask】電子掲示板を作る~①まずはFlaskで「Hello world」を表示~
スポンサードリンク
おはようございます。Shotaです。
今日から自作のPythonで作ったWebアプリの作り方を解説していきます。作るアプリは「電子掲示板」です。(画像は電子掲示板のアプリ)ただし、使用するソフト、バージョンは次の通りです。
- 使用ソフト:Visual Studio Code(VScode)
- 使用言語:Python ver3.9.3
- 使用OS:Windows 10
なお、本記事はすでにPythonがインストールされている、VScodeがインストールされている前提で解説します。まだPythonをインストールしていない人は次の記事を参照しながらPythonのインストールをしてください。
▼自作の電子掲示板
作り方をいっぺんに書くと記事が膨大な量になりますので、まずはFlaskで「Hello world」と表示させる場面から始めていこうと思います。
Flaskをインストール
まずはWindowsキーと「R」キーを同時に押して入力欄に「cmd」と入力してコマンドプロンプトを開いてください。
そして、入力が終わったらコマンドプロンプトで次のコマンドを入力してください。
pip install flask
このコマンドを入力したあと、「Successfully Installed」という文字が表示されていれば無事にインストールが成功しています。
すでにインストールされている場合は、
pip install flask > Requirement already satisfied: flask ~ ....
コマンドプロンプト上にこのように表記されていると思います。
それでは、実際にHello worldをFlaskを使って表示してみましょう。
Hello worldを表示
まずは、VSCodeに適当なフォルダー「sampleapp」を作り、その中にファイル「main.py」を作りましょう。このとき、「.py」を付けないとPythonファイルとして認識されないので十分に注意してください。
最初のファイルであるmain.pyが仕上がったら、次のプログラムをコピペしてください。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '<h1>Hello World</h1>' if __name__ == '__main__': app.run(debug=True)
VScodeでPythonファイルを実行するときは、ターミナルを開いて次のように入力してください
py main.py
これを入力すると、以下のような表示が出ると思います。
* Serving Flask app "main" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on * Restarting with windowsapi reloader * Debugger is active! * Debugger PIN: 162-320-345 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
このような表示が出れば、問題なくプログラムを実行できたことになります。これを実際に表示してみると、次のようになると思います。(画像を参照)
プログラムの仕組み
それでは、実際に書いたプログラムの説明に入っていきます。先程の説明にもありましたが、書いたプログラムは次の通りです。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '<h1>Hello World</h1>' if __name__ == '__main__': app.run(debug=True)
では、このプログラムで一体何をしているのでしょう?
①Flaskクラスをインポートする
最初に、次の一行でFlaskクラスをインポートしています。この一行がないとFlaskを動かすことができないので十分に注意してください。
from flask import Flask
Flaskに限らず、どの外部クラスもそうですが、Pythonではインポートしたいクラスを最初に書くのは鉄則です。ぜひ押さえておきましょう。
②Flaskクラスのインスタンスを作る
次に、Flaskクラスのインスタンスを作ります。私の場合は、変数名を「app」として次のように定義します。
app = Flask(__name__)
これは、Flaskがテンプレートや静的ファイルを探すために絶対に必要です。
③routeデコレータを使って、どのURLで関数を呼び出すのかFlaskに教える
このコードを見てみましょう。
@app.route('/') def hello_world(): return '<h1>Hello World</h1>'
使いたい関数とURLを結びつけたいときは、route()デコレータを使います。()の中にURLとして使いたい文字列を書き、そのしたに関数を書いてFlaskにしてほしい処理を書いていきます。
④メインプログラムとして実行・デバッグモード
このコードを見てみましょう。
if __name__ == '__main__': app.run(debug=True)
if _name_ == '_main_':
の意味は、「該当のファイルがコマンドラインからスクリプトとして実行された場合にのみ処理を実行する」という意味になります。このとき、他のファイルからインポートされたときは処理が実行されません。
if _name_ == '_main_':
を使うことで、モジュールのテストコードを記述したり、モジュールをコマンドとして使うことができます。
FlaskはデフォルトでdebugがFalseとなって実行されますが、これを直接いじってdebug=Trueとするとデバッグが可能になります。
デバッグとは、コンピュータプログラムの誤りや不具合、血管というようなバグを探して取り除き、修正することです。
ただし、デバッグモードのままにすると自由自在にコードをいじれるようになってしまいます。そのため、深刻なセキュリティ上のリスクがありますのでデバッグモードは本番環境では実行してはいけません。
まとめ
今日はFlaskで電子掲示板を作るための下準備として、Flaskで「Hello world」を表示するために必要なプログラムとその説明をしました。
今日の記事を参考に、Flaskに対する理解を深めてくれると幸いです。
今日の記事はこれで終了です。
【参考サイト】