「アウトプットと言う名の備忘録@Texas」

日本じゃない何処かの脳筋パイソニスタによる何かしらの走り書き

【Flask超入門】その1:Flask で Hello World!! のための基本操作

f:id:At_sashimi_py:20191014055351p:plain

palletsprojects.com

この記事は【Flask超入門】その0 の続きとなります!
atsashimipy.hatenablog.com


では早速、前回作った仮想環境python fileを作成し、軽量Webフレームワークと名高い Flask でサクッと Hello World!!”していきましょう!

#terminal
$ touch flask_project.py

基本初期設定

公式に従って(ちょっと変更しました笑)

#flask_project.py

from flask import Flask

app = Flask(__name__)


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


Environment Variable を設定してローカルサーバーでRunできるようにします。

#terminal
$ export FLASK_APP=flask_project.py
#terminal
$ flask run

http://localhost:5000/

f:id:At_sashimi_py:20191013090528p:plain
Hello World!!

出来ました!(はや!!)

Hello World!!

ただこのままだとコードを変更した際、毎回サーバーを再起動しないと変更が適応されません。

それは、超絶面倒臭いので

#terminal
$ export FLASK_DEBUG=1

とすると
ページを更新するだけで変更が適用されるようになります。
試しに

#flask_project.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return "<h1>Hello Flask!!</h1>"


Hello World!! 

から

Hello Flask!!

に変更、そしてページ更新すると。。。

f:id:At_sashimi_py:20191013091429p:plain
Hello Flask!!

はい!更新されました!

Hello Flask!!

Environment Variableをターミナル閉じるごとに設定するのは面倒臭い。

面倒なことはなるべく排除していきましょう!
ということで
以下の

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

を flask_project.pyの一番下に付け足しましょう。

#flask_project.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return "<h1>Hello Flask!!</h1>"


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

そしていつものpythonを実行するように

#terminal
python flask_project.py

とすると
同じ画面が表示されます。
Environment Variable いちいち設定する必要がなくてこっちの方が断然楽ですね!

About ページ

以下を付け足して新しいページ(About page)を作りましょう

@app.route('/about')
def about():
    return "<h1>About Page</h1>"

http://localhost:5000/about

f:id:At_sashimi_py:20191013093122p:plain
About page

できました
@app.route('/') の真下に
@app.route('/home')
を加え、function名をhomeに

#flask_project.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
@app.route('/home')
def home():
    return "<h1>Hello Flask!!</h1>"


@app.route('/about')
def about():
    return "<h1>About Page</h1>"


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

こうすることで
http://localhost:5000/home
でも
http://localhost:5000
でもメインのページに帰ってくることができるようになりました。

今回はとりあえずここまで!


次回はもっとhtmlを書いて、それっぽい形にしていきましょう!
では!