#背景#javascript
bootstrap爲前端的快速開發提供了一個很好的框架;Django則爲後端的快速提供了全方位的支持,可是須要本身負責實現前端的視覺部分。一前一後兩個框架正好能夠結合構建一套完整的開發方案出來。html
常規的界面,能夠在Django的模板中,直接使用bootstrap的組件、類等工具編寫便可。涉及到須要進行表單處理的部分,尤爲是涉及到諸如後臺等不須要特別美化,而又須要快速開發的部分,這種手工編碼的方式顯得就有點兒沒法接受。前端
咱們知道藉助Django的form和widget功能,開發者幾乎無需手工編寫表單代碼,Django會自動按照咱們在form(及model)定義的表單結構,自動生成最終的html代碼。對於開發者來講,這是一個極大的福音!咱們但願在結合bootstrap和Django時不要失去這種優點。java
而Django Bootstrap Toolkit正是結合二者優點的有力工具。git
#簡介#github
Django Bootstrap ToolKit(DBT) 已經發布到pypi,其安裝及簡單使用方法可見官網。本文對此工具提供的功能作一簡單介紹。django
##標籤(tag)##bootstrap
使用bootstrap須要引入其樣式表和/或其js庫。DBT提供了一組標籤方便開發者完成此項工做。 固然此工具是從bootstrap的源碼庫中直接引入,若是想從其餘地方引入,能夠不使用此組標籤。後端
bootstrap_stylesheet_url 輸出樣式表的url。bootstrap版本庫中的樣式表地址。框架
bootstrap_stylesheet_tag 輸出引入樣式表的代碼。<link rel="stylesheet" href="...">
bootstrap_javascript_url 輸出js的url。bootstrap版本庫中的js地址。
bootstrap_javascript_tag 輸出引入js的代碼。 <script src="..."></script>
active_url 若是當前url與給定url相同則輸出output參數的值(默認active)。經常使用於設置當前菜單高亮等場景。 調用示例:{% active_url request,'/home'
##filter##
藉助DBT提供的很是有限的幾個過濾器(filter)便可實現前面提到的快速開發的需求。
渲染整個表單: {{ form|as_bootstrap}}
或渲染單個字段:``{{ form.field|as_bootstrap}}`
is_disabled 若是字段不可編輯或者其widget包含readonly、diabled屬性,則返回True
is_enabled 與is_disabled相反
bootstrap_input_type 輸出input的類型
pagination 生成bootstrap樣式的分頁。調用示例:
{% if is_paginated %} {{ page_obj|pagination }} {% endif %}
split 以給定分隔符分割字符串
DBT提供了4個widget,不但提供了對bootstrap特有輸入樣式(如prepend)的支持,還引入了一個新的datepicker插件方便日期的輸入。
BootstrapUneditableInput 不可編輯字段
BootstrapTextInput 能夠增長前綴,後綴的輸入控件。調用示例:
prepended = forms.CharField( max_length=100, help_text=u'I am prepended by a P', widget=BootstrapTextInput(prepend='P'), )
BootstrapPasswordInput 能夠增長前綴、後綴的密碼輸入控件
BootstrapDateInput 日期輸入控件