一分鐘精通Flask-Bootstrap的使用

要想在程序中集成Bootstrap,顯然要對模板做所有必要的改動。不過,更簡單的方法是使用一個名為Flask-Bootstrap 的Flask 擴展,簡化集成的過程。

安裝:

Flask-Bootstrap 使用pip安裝:

pip install flask_bootstrap

  Flask 擴展一般都在創建程序實例時初始化,下面是Flask_Bootstrap的初始化方法

加載:

from flask_bootstrap import Bootstrap

初始化:

方法一:

app = Flask(__name__)
Bootstrap(app)

方法二:

實例:

頁面加入:?{ %extends "bootstrap/base.html" %}

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %} 首頁 {% endblock %}</title>{% block mycss %} {% endblock %}
</head>
<body><nav class="navbar navbar-inverse "><div class="container"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">Liu'BLOG</a></div><!-- Collect the nav links, forms, and other content for toggling --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li class="active"><a href="{{url_for('blog.index')}}">首頁 <span class="sr-only">(current)</span></a></li><li><a href="{{url_for('article.add')}}">發表博客</a></li><li><a href="{{url_for('blog.uall')}}">顯示用戶</a></li><li><a href="{{url_for('blog.test')}}">測試鉤子函數</a></li></ul><form class="navbar-form navbar-left" action="{{url_for('blog.search')}}" method="post"><div class="form-group"><input type="text" class="form-control" placeholder="輸入用戶名/手機號碼" name="search"></div><button type="submit" class="btn btn-default">搜索用戶</button></form><ul class="nav navbar-nav navbar-right">{% if session['uname'] %}<li><a href="{{url_for('blog.udetial')}}">歡迎 {{session['uname']}}</a></li><li><a href="{{url_for('blog.exit')}}">注銷</a></li>{% else%}<li><a href="{{url_for('blog.login')}}">登錄</a></li><li><a href="{{ url_for('blog.register') }}">注冊</a></li>{% endif %}</ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid -->
</nav>{%extends "bootstrap/base.html"%}
{% block content %}  {% endblock %}{% block myjs %}  {% endblock %}
</body>
</html>

?效果:

  Jinja2 中的extends 指令從Flask-Bootstrap 中導入bootstrap/base.html, 從而實現模板繼承。Flask-Bootstrap 中的基模板提供了一個網頁框架,引入了Bootstrap 中的所有CSS 和JavaScript 文件。基模板中定義了可在衍生模板中重定義的塊。block 和endblock 指令定義的塊中的內容可添加到基模板中。上面這個user.html 模板定義了3 個塊,分別名為title、navbar 和content。這些塊都是基模板提供的,可在衍生模板中重新定義。title 塊的作用很明顯,其中的內容會出現在渲染后的HTML 文檔頭部,放在<title> 標簽中。navbar 和content 這兩個塊分別表示頁面中的導航條和主體內容。在這個模板中,navbar 塊使用Bootstrap 組件定義了一個簡單的導航條。content 塊中有個<div> 容器,其中包含一個頁面頭部。之前版本的模板中的歡迎信息,現在就放在這個頁面頭部。運行結果如下圖:    

Flask-Bootstrap 的base.html 模板還定義了很多其他塊,都可在衍生模板中使用,下表列出了所有可用的塊:

?

塊名  說明
doc整個html文檔
html_attribshtml標簽屬性
html  html標簽中的內容
headhead標簽中的內容
titletitle標簽中的內容
metas一組meta標簽
styles層疊樣式表定義
body_attribsbody標簽的屬性
bodybody標簽中的內容
navbar用戶定義的導航條
content用戶定義的頁面內容
scripts文檔底部的JavaScript 聲明

  上表中的很多塊都是Flask-Bootstrap 自用的,如果直接重定義可能會導致一些問題。例如,Bootstrap 所需的文件在styles 和scripts 塊中聲明。如果程序需要向已經有內容的塊中添加新內容,必須使用Jinja2 提供的super() 函數。例如,如果要在衍生模板中添加新的JavaScript 文件,需要這么定義scripts 塊:

{% block scripts %}
{{ super() }}
<script type="text/javascript" src="my-script.js"></script>
{% endblock %}

關于settings配置文件:

BOOTSTRAP_USE_MINIFIED  = True  #  使用mini版的bootstrap文件
BOOTSTRAP_SERVE_LOCAL = False    #是否使用本地服務器來提供bootstrap文件
BOOTSTRAP_LOCAL_SUBDOMAIN   = None   #  關于blueprint的子域名傳輸?暫時沒用到
BOOTSTRAP_CDN_FORCE_SSL  =  True   # 給CDN加速使用安全的https連接

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456328.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456328.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux生產環境下安裝anaconda總結

前言&#xff1a; 工作中&#xff0c;常常要在新的linux生產服務器中安裝自己的集成python環境&#xff0c;這種情況下有一點需要注意&#xff1a;不能覆蓋生產服務器中的python環境&#xff08;也就是自己的python環境要和系統的python環境分開&#xff09;。一般情況下系統自…

Delphi TScrollBar 用于滾動窗口、組件內容

滾動條組件&#xff08;TScrollBar&#xff09;此組件是一個Windows滾動條&#xff0c;用于滾動窗口、組件內容。許多控制有滾動條屬性&#xff0c;它們把滾動條作為自己的一部分&#xff0c;對于沒有完整滾動條的控制&#xff0c;TScrollBar組件提供了一個附加的功能&#xff…

FSF 稱 DRM 被用于鎖定、控制和監視用戶

自由軟件基金會正在督促美國政府廢除DMCA中保護DRM的反規避條款。DMCA的1201條款禁止繞過DRM保護的內容和設備。 自由軟件基金會的Donald Robertson在致函美國版權辦公室的信&#xff08;PDF&#xff09;中指出&#xff0c;技術保護措施和數字限制管理&#xff08;即DRM&#x…

改數據庫表結構類型兩種方法

alter table user change password password varchar(128) not null; alter table user modify column password varchar(128) not null;

申請評分卡(A卡)的開發過程(1)

前言&#xff1a; 本篇文章上接《申請評分卡簡介》&#xff0c;有需要的童鞋可以參考下&#xff1a;https://blog.csdn.net/qq_16633405/article/details/107744921 下面介紹下A卡的開發步驟。 開發過程 1、評分卡模型開發步驟&#xff1a; 1、立項&#xff1a;場景&#…

提升你的開發效率,10 個 NPM 使用技巧

對于一個項目&#xff0c;常用的一些npm簡單命令包含的功能有&#xff1a;初始化一個文件夾( npm init )&#xff0c;下載npm模塊( npm install )&#xff0c;創建測試( npm test ) 和自定義腳本( npm run )。但是&#xff0c;進一步了解一些 npm 的使用技巧可以徹底改變你的日…

E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-front

解決&#xff1a; E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-frontend)&#xff0c;是否有其他進程正占用它&#xff1f; 方法&#xff1a; 重新啟動虛擬機服務器 再在黑屏終端中重新嘗試輸入su…

聚類效果評估指標總結

前言 實際工作中經常會用到一些聚類算法對一些數據進行聚類處理&#xff0c;如何評估每次聚類效果的好壞&#xff1f;可選的方法有1、根據一些聚類效果的指標來評估&#xff1b;2、直接打點。今天就主要總結下這段時間了解的聚類效果評估指標。廢話少說&#xff0c;直接上干貨…

{%extends bootstrap/base.html%}的添加,使得其他block無法繼承

仙說{%extends "bootstrap/base.html"%}用法&#xff1a; 在base.html中調用一次即可&#xff0c;并且 {%extends "bootstrap/base.html"%} 要放在 最后頭&#xff01;&#xff01;最后頭&#xff01;最后頭&#xff01; base中不用再添加 {% block cont…

Vue.directive自定義指令

Vue除了內部指令&#xff0c;我們也可以定義一些屬于自己的指令&#xff0c;比如我們要定義一個v-diy的指令&#xff0c;作用就是讓文字變成紅色。 寫好了這個功能&#xff0c;我們現在就自己定義一個全局的指令。我們這里使用Vue.directive( ); html <div v-diy"color…

HTML5 SVG

SVG介紹1.什么是svgsvg指可伸縮矢量圖形&#xff08;Scalable Vector Graphics &#xff09;svg用來定義用于網絡的基于矢量圖形svg使用XML格式定義圖形svg圖像在放大或改變尺寸的情況下其圖形質量不會有損失svg是網為王聯盟的標準2.svg的優勢svg圖像可通過文本編輯器來創建和修…

運用Nginx代理和UWSGI將Flask項目部署在Linux中 詳細步驟

nginx: 安裝可以參照的路徑: http://nginx.org/en/linux_packages.html#Ubuntu 啟動Nginx nginx [ -c configpath] 默認配置目錄&#xff1a;/etc/nginx/nginx.conf 查看進程&#xff1a; ps -ef |grep nginx 控制Nginx nginx -s xxxstop 快速關閉quit …

機器學習算法之KNN

前言 KNN一般用于有監督的分類場景&#xff0c;除此之外&#xff0c;KNN在異常檢測場景中也有應用&#xff0c;下面主要介紹下KNN在這兩面的應用原理。 KNN做分類的原理 計算步驟如下&#xff1a; 1&#xff09;算距離&#xff1a;給定測試對象&#xff0c;計算它與訓練集中…

Supermap 組合單值專題圖與標簽專題圖演示樣例

效果圖例如以下&#xff1a;單值專題圖并顯示每一個區域的相關文字信息 代碼&#xff1a; <!DOCTYPE> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>單值專題圖</title>…

[劍指Offer] 25.復雜鏈表的復制

1 /*2 struct RandomListNode {3 int label;4 struct RandomListNode *next, *random;5 RandomListNode(int x) :6 label(x), next(NULL), random(NULL) {7 }8 };9 */ 10 class Solution 11 { 12 public: 13 //在舊鏈表中創建新鏈表&#xff0…

Flask項目中應用七牛云存儲

七牛云存儲&#xff1a; https://developer.qiniu.com/kodo/sdk/1242/python 點擊注冊開通七牛開發者帳號 如果已有賬號&#xff0c;直接登錄七牛開發者后臺&#xff0c;點擊這里查看 Access Key 和 Secret Key pip install qiniu q Auth(Access Key,Secret Key) b…

異常檢測算法之IForest

前言 IForest即孤立森林&#xff0c;可以用于做異常檢測。一句話總結IForest做異常檢測的原理&#xff1a;異常點密度小&#xff0c;基于樹模型容易被一下切割出來&#xff0c;正常值密度大&#xff0c;需要切割多次才能得到目標值。 原理 iForest算法得益于隨機森林的思想&…

JavaScript - 動態數據

1、使用ajax進行數據的請求 function getData(params){$.ajax({type: "POST", //提交方式data: "{params}", //請求參數url:, //請求接口contentType: "application/text;charsetutf-8",async: false, //是否同步dataType: &quo…

用c#編寫爬蟲在marinetraffic下載船僅僅圖片

近期在做船僅僅識別方面的事情&#xff0c;須要大量的正樣本來訓練adaboost分類器。于是到marinetraffic這個站點上下載船僅僅圖片。寫個爬蟲來自己主動下載顯然非常方便。 站點特點 在介紹爬蟲之前首先了解一下marinetraffic這個站點的一些特點&#xff1a; 1. 會定期檢測爬蟲…

發送手機驗證碼通過調用第三方網易云信API(flask項目)

一、 獲取驗證碼&#xff1a; 1. 輸入手機號碼 2. 通過ajax發送請求 3. 后端&#xff1a; 獲取手機號碼 使用requests向第三方的服務端&#xff08;網易云信&#xff09;發送請求 官方文檔 https://dev.yunxin.163.com/docs/product/%E7%9F%AD%E4%BF%A1/%E7%9F…