所在的位置: Web开发 >> HTNL >> FlaskWebDevelopment

FlaskWebDevelopment

2、集成TwitterBootstrap的Flask-Bootstrap

Bootstrap是Twitter的一个开源框架,提供用户交互组件来创建一个清新且有吸引力的web页面,并兼容所有现代web浏览器。

Bootstrap是一个客户端框架,服务端不直接参与。服务端需要做的就是提供HTML响应,引用层叠样式表(CSS)和JavaScript文件并通过HTML、CSS、和JavaScript代码来实例化需要的组件。模板是做这些的理想地方。

集成Bootstrap到应用程序最好的方式是在模板中做一些必要的改变。一个简单点的途径就是使用Flask-Bootstrap扩展去简化集成工作。可以通过pip来安装Flask-Bootstrap:

(venv)$pipinstallflask-bootstrap

Flask扩展通常在应用程序实例被创建的时候初始化。示例3-4展示Flask-Bootstrap的初始化。

示例3-4.hello.py:Flask-Bootstrap初始化

fromflask.ext.bootstrapimportBootstrap#...bootstrap=Bootstrap(app)

和第二章的Flask-Script一样,Flask-Bootstrap从flask.ext命名空间导入并通过传递应用程序实例到构造函数来初始化。

一旦Flask-Bootstrap被初始化,一个包含所有Bootstrap文件的基础模板就可供应用程序使用了。这个模板利用Jinja2的模板继承,应用程序则可以扩展一个拥有通用页面结构,且包含Bootstrap导入的元素的基础模板。示例3-5展示作为派生模板的新版user.html。

_示例3-5.templates/user.html:使用Flask-Bootstrap的模板

{%extends"bootstrap/base.html"%}{%blocktitle%}Flasky{%endblock%}{%blocknavbar%}divclass="navbarnavbar-inverse"role="navigation"divclass="container"divclass="navbar-header"buttontype="button"class="navbar-toggle"data-toggle="collapse"data-target=".navbar-collapse"spanclass="sr-only"Togglenavigation/spanspanclass="icon-bar"/spanspanclass="icon-bar"/spanspanclass="icon-bar"/span/buttonaclass="navbar-brand"href="/"Flasky/a/divdivclass="navbar-collapsecollapse"ulclass="navnavbar-nav"liahref="/"Home/a/li/ul/div/div/div{%endblock%}{%blockcontent%}divclass="container"divclass="page-header"h1Hello,{{name}}!/h1/div/div{%endblock%}

Jinja2的extends指令通过从Flask-Bootstrap引用bootstrap/base.html来实现模板的继承。Flask-Bootstrap的基础模板提供一个包含BootstrapCSS和JavaScript文件的web页面骨架。

基础模板定义了一些可以被派生模板重写的block。block和endblock指令定义了被添加到基础模板中block的内容。

上面的user.html模板定义了三个block,分别命名为title、navbar和content。基础模板里的这些block输出派生模板定义的内容。title块比较简单;它的内容将出现在title标签内,然后被渲染在HTML文档的头部。navbar和content块则是为页面保留的导航栏和主内容。

在这个模板中,navbar块使用Bootstrap组件定义了一个简单的导航栏。content块有个名为container的div,里面嵌套了名为page-header的div。图3-1展示这些操作后应用程序长成啥样了。

建议:如果你有克隆在GitHub上的应用程序,你现在可以运行gitcheckout3b来切换到这个版本的应用程序。Bootstrap官方文档(







































北京哪个医院白癜风比较好
白癜风公益献礼



转载请注明:http://www.guyukameng.com/html/html1/9731.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了