为了账号安全,请及时绑定邮箱和手机立即绑定

Flask学习笔记④---Flask-Bootstrap的使用

标签:
Java

安装

要想在程序中集成 Bootstrap, 显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为 Flask-Bootstrap 的 Flask 扩 展,简化集成的过程。 Flask-Bootstrap 使用 pip安装:

pip install flask-bootstrap

在之后的Python程序中使用bootstrap的时候,也需要导入和初始化,使用如下的代码:

from flask.ext.bootstrap import Bootstrap
bootstrap = Bootstrap(app)

Flask-Bootstrap 需要从 flask.ext 命名空间中导入,然后把程序实例传入构造方法进行初始化。

初始化 Flask-Bootstrap 之后,就可以在程序中使用一个包含所有 Bootstrap 文件的基模板。这个模板利用 Jinja2 的模板继承机制,让程序扩展一个具有基本页面结构的基模板,其中就有用来引入 Bootstrap 的元素。举个栗子改写上一节中的user.html。

{% extends "bootstrap/base.html" %}
{% block title %}Flasky{% endblock %}
{% block navbar %}<div class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle"data-toggle="collapse" data-target=".navbar-collapse">
                <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="/">Flasky</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="/">Home</a></li>
            </ul>
        </div>
    </div></div>{% endblock %}
{% block content %}<div class="container">
    <div class="page-header">
        <h1>Hello, {{ name }}!</h1>
    </div></div>{% endblock %}

首先使用extends命令引入bootstrap中的基模板---bootstrap/base.html,Bootstrap 中 的基模板提供了一个网页框架,引入了 Bootstrap 中的所有 CSS 和模板 | 25JavaScript 文件。基模板中定义了可在衍生模板中重定义的块。 block 和 endblock 指令定义的块中的内容可添加到基模板中。

上面的栗子中,定义了title, navbar,content三个块,这些块都是基模板提供的, 可在衍生模板中重新定义。 title 块的作用很明显,其中的内容会出现在渲染后的 HTML 文档头部,放在 <title> 标签中。 navbar 和 content 这两个块分别表示页面中的导航条和主体内容。

Flask-Bootstrap 的 base.html 模板还定义了很多其他块,都可在衍生模板中使用,如下:

webp

基模板定义的块1


webp

基模板定义的块2

很多块都是 Flask-Bootstrap 自用的,如果直接重定义可能会导致一些问题。例如, Bootstrap 所需的文件在 styles 和 scripts 块中声明。如果程序需要向已经有内容的块中添加新内容, 必须使用 Jinja2 提供的 super() 函数。例如,如果要在衍生模板中添加新的 JavaScript 文件,需要这么定义 scripts 块:

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



作者:铁皮鸽
链接:https://www.jianshu.com/p/102afa96bc4b


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消