60歳からITエンジニアを目指す無謀なブログ

60歳で定年し、職種を変更してIT技術者を目指すブログです。

Flaskチュートリアル(自分用備忘録)

ディレクトリ構造

jinja2

 |
 |--app.py
 |--templates
 |   |--index.html

 

app.pyの内容

ーーーーー

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html')

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

ーーーーー

index.htmlの中身

ーーーーー

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>HTMLファイルを読み込む</title>
</head>
<body>
        <h1>render_template関数</h1>
        <p>HTMLファイルは、無事読み込まれています。</p>
</body>
</html>

ーーーーー

 

FLASK用シェル変数の設定(2番目はデバッグモードの有効設定)これで即時アップデート反映される(bash環境)

ーーーーーーーーーーーーーー

export FLASK_APP=app

export  FLASK_ENV=development

ーーーーーーーーーーーーーー

jinja2 ディレクトリの直下(app.py)が見える場所で、、次のコマンド実行

>flask run

 * Serving Flask app 'app' (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 125-882-778

 

http://127.0.0.1:5000/をクリックするとブラウザが起動され

ーーーーーーーーーーーーーー

render_template関数

HTMLファイルは、無事読み込まれています。

ーーーーーーーーーーーーーー

が表示される

 

トラブルシューティング

PCのターミナルなど、ツールのパスが通っているターミナルで設定、コマンド実行すること

 

何回か実行するとプロセスが残っている状態に陥る時があるとflask run起動時に次のエラーメッセージが出る場合がある

"OSError: [Errno 48] Address already in use"

これを解決にするには前回走らせて残っているプロセスを以下の要領でKillする

    1. ps -fA | grep python
    2. lsof -i :5000 | grep python
  1. kill processID