備忘メモにすぎない。気が向いたら丁寧にまとめる。
導入時における参考サイト
Webアプリ初心者のFlaskチュートリアル - Qiita
始めにWebアプリ開発初心者の私がFlaskと出会い、親しみ、成長する過程を描いたハートフルなストーリーです。やりながら書いているので、説明の8割がノリです。飽きたらやめます。飽きなかったら続…
Flaskで変数を文字列ではなくHTMLのタグとして読み込ませたいとき
テンプレート内で、div変数を| safe フィルターを使いsafeにする。これをやらないと文字列として連携されるのでhtmlタグが認識されない。
<body>
{{ div | safe }}
</body>
pandasデータフレームをhtml変換する
to_htmlを使う。
# tblをhtmlに変換
contents_race_table = tbl.to_html()
# テーブル内にチェックボックスを仕込むときなどは
# そのままだとHTML表示向けにエスケープされてしまうので、escape=Falseで回避
contents_race_table = tbl.to_html(escape=False)
to_htmlを使うと長い文字列が勝手に省略される。それを防ぐためには、to_htmlの前に以下を差し込む
pd.set_option('display.max_colwidth', -1)
contents_race_table = tbl.to_html(escape=False)
セッションでデータを保持する
from flask import Flask, session
# secret_key
app.secret_key = 'himitsu'
# 書き込み
session['name'] = 'date'
# 読み込み
date = session.get('name')
secret_keyを設定しないとエラーになる。
RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
同じname属性のフォームを複数受け取る
getlistで複数受け取ることができる。
<input type="checkbox" id="i1" name="check" value="1">
<input type="checkbox" id="i2" name="check" value="2">
@app.route('/', methods=['POST'])
def post():
# 単体のとき
p = request.form.get('check')
# 複数のとき
p = request.form.getlist('check')
おまけ
ちゃんと作りたい、知りたい人は読むべし。
コメント