在子模板中,我們可以對父模板中的塊進行2種操作 覆蓋內容 和 追加內容。
覆蓋內容
當在子模板裏創建同名塊時,會使用子塊的內容覆蓋父塊的內容。
追加內容
如果想要向基模板中的塊追加內容,需要通過super()函數進行聲明,這會向父塊添加內容。
例如向style塊添加樣式
{% block styles %} {{ super() }} <style> .foo{ color:red; } </style> {% endblock %}
運行app,打開index頁面,渲染後的HTML代碼如下
可以看到子模板成功追加了style內容。
加載靜態文件
一個Wen項目往往有很多靜態文件,如CSS,Javascript文件、img等等。在Flask中默認我們把需要的靜態文件存儲在與主腳本同級的static文件夾裏。
爲了在HTML中引用靜態文件,我們需要用url_for()函數來獲取靜態文件的URL。Flask內置了用於獲取靜態文件的視圖函數,端點值爲static,它的默認URL規則爲static/<path:filename>,URL變量filename是相對於static文件夾根目錄下的文件路徑。
在index.html文件{% content %}內添加
<img src="{{ url_for('static',filename='cat.jpg') }}">
運行app打開index頁面
小喵咪出現~
在模板中添加以下代碼,加載CSS文件
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css') }}">
注意不要添加錯了,一般添加到基模板或者其他要渲染成HTML的文件裏,之前沒注意添加到子模板裏結果向子模板加載了css文件,結果頁面沒變化。
添加Favicon
我們經常會在命令行看到一個404狀態的GET請求,請求的URL爲/favicon.ico
也就是這個紅色的圖標。也可以叫做網站頭像。
要想添加favicon,先要把favicon圖片放置到static下。除了ico格式外PNG和不會動的GIF也行。在<head>部分下添加
<link rel="icon" type="image/x_icon" href="{{ url_for('static', filename='favicon.png') }}">
即可
一般選擇16X16的圖片比較好。