この記事は
(Qrunchのサービス終了に伴いこちらに引っ越ししました)
2019/12/12
にQrunchに掲載した内容です。(Qrunchのサービス終了に伴いこちらに引っ越ししました)
まとめてアウトプットすることも大事ですが、少しずつ小さな単位でアウトプットし、後からまとめることの大切さも実感する今日この頃です。
必要最低限の記述ですみません。
やりたいこと
flask(flask-appbuilderプラグイン利用)でwebアプリ起動時faviconを表示するようにしたい。
イメージはこんな感じ(ブラウザはsafariです)。
やりかた
GitHubに良い情報が。 参考リンクI nice way to do it is to override base.html template and add it to the block head_css
base.htmlをオーバーライドしてhead_cssをごにょゴニョすれば良さそう。
やってみる
関連するフォルダ構成はこんな感じ。
(config.pyとかは省略してます)
.
├─ static
│ └─ favicon.png
├─ templates
│ ├─ custom_base.html
│ └─ sample.html
├─ __init__.py
└─ views.py
custom_base.html
{% extends 'appbuilder/baselayout.html' %}
{% block head_css %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.png') }}">
{% endblock %}
sample.html
{% extends "./custom_base.html" %}
{% block content %}
<h2>favicon表示させたい</h2>
{% endblock %}
views.py
|
|
これでFlaskを起動させ、{baseurl}/myview/method1
にアクセスすると、staticフォルダ配下に設置したfaviconファイルの内容が表示される。
…しかし、この方法だと他のurlにアクセスするとfaviconが表示されません。ぐぬっ。
AppBuilderインスタンス生成時にベーステンプレートの設定を加えられるようなので__init__.py
に設定を追加します。
__init__.py
|
|
再びflaskを起動しなおすと全てのrouteにfaviconが表示されます( ´∀`)ワーイ