FlaskでWEBアプリケーションを作りたいのでFlaskを入れていきます。
Anaconda で環境作成
Anacondaのconda環境を作っているのでflask_webという環境を作ってそこで作業します。
conda create -n flask_web
conda activate flask_web
AnacondaでFlaskをインストール
conda install flask
flaskって23.8MBでいいんですね。ヘルシー
The following packages will be downloaded:
package | build
---------------------------|-----------------
click-8.0.4 | py311haa95532_0 203 KB
colorama-0.4.6 | py311haa95532_0 36 KB
flask-2.2.2 | py311haa95532_0 194 KB
itsdangerous-2.0.1 | pyhd3eb1b0_0 18 KB
jinja2-3.1.2 | py311haa95532_0 290 KB
markupsafe-2.1.1 | py311h2bbff1b_0 27 KB
pip-23.0.1 | py311haa95532_0 3.0 MB
python-3.11.3 | h966fe2a_0 17.9 MB
setuptools-66.0.0 | py311haa95532_0 1.6 MB
werkzeug-2.2.3 | py311haa95532_0 453 KB
wheel-0.38.4 | py311haa95532_0 96 KB
------------------------------------------------------------
Total: 23.8 MB
初めてのWEBアプリ
クイックスタート — Flask Documentation (2.2.x)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
実行のさせ方が公式ページの説明からだとわからなくてはまりました。
set FLSK_APP=hello
flask --app hello.py run
http://127.0.0.1:5000/ にアクセスするとHello, World!が表示されていました。
動くことが確認できました。
debugモード
flask --app hello --debug run
いじっていたら再起動しないとコードの中身が反映しなくて面倒なのでdebugモードをONにしてみました。これなら作業がはかどりそうです。
htmlとpython部分を分けたい
ここまで作業してみると、起動動作の.pyにhtmlのhello!world!が書かれているので、htmlの部分の量が多くなると収集つかなそうなので早めに切り分けしたい。
templatesというフォルダを作るルールになっているようなので、作成してそこにhtmlを入れて移動。
from flask import render_template
フォルダはtemplatesとsを付けないといけないルールなのにimportはsいらないので最初間違えた。
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route("/")
def hello_world():
return render_template('hello.html')
コメント