首页 > 其他分享 >Bootstrapd导航条使用

Bootstrapd导航条使用

时间:2022-10-18 09:22:38浏览次数:72  
标签:bootstrap 定义 Bootstrapd Bootstrap Flask html 使用 导航条 模板

要想在程序中集成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_attribs html标签属性
html   html标签中的内容
head head标签中的内容
title title标签中的内容
metas 一组meta标签
styles 层叠样式表定义
body_attribs body标签的属性
body body标签中的内容
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连接

标签:bootstrap,定义,Bootstrapd,Bootstrap,Flask,html,使用,导航条,模板
From: https://www.cnblogs.com/catfeel/p/16801478.html

相关文章

  • vue3+vite 使用defineAsyncComponent动态异步引入组件出错时的解决办法
    constname='c1'constcurrentComponent=shallowRef()constcomponents=import.meta.glob("./a/*.vue");currentComponent.value=defineAsyncComponent(compon......
  • Markdown 基本语法使用
    什么是Markdown?    Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(JohnGruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者......
  • 拦截器的简单使用
    概念Java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可......
  • Stream流简单使用
    创建流/***创建流*/@TestpublicvoidtestOne(){List<Author>authorList=newArrayList<>();authorList.add(Author.buil......
  • Eclipse使用技巧
    介绍各位使用Eclipse作为开发IDE的看客们,Eclipse的一些使用技巧您都知道吗?本文会介绍一些很实用的快捷键。快捷键Ctrl+Shift+L弹出快捷键说明进入或退出块选择模式Alt+Sh......
  • 使用PDF Arrange移除PDF文件的“安全模式”
    以前就写过一篇博客《​​使用pdfsam来移除PDF文件的安全模式​​》,在这篇文章中是使用pdfsam来对PDF文件进行某种程度的“破坏”,然后“重建”另一个PDF文件,从而达到移除“......
  • Eclipse中Tomcat插件的使用说明
    打开Tomcat视图通过菜单Window->ShowView->Other然后输入过滤项Servers,选择找到的内容然后点OK即可。添加web项目如果在打开的Tomcat视图中已经有一个实例,则右键菜单Addan......
  • python爬虫从0到1 -Requests库的基本使用(get/post请求)
    文章目录​​前言​​​​(一)requests的get请求​​​​1.导入requests库​​​​2.定义url地址以及请求头​​​​3.返回响应数据​​​​4.将数据打印​​​​总结(对比......
  • 《Rust唠嗑室》第36期 - 分享使用Rust进行嵌入式开发创业的一些点滴
    题目:分享使用Rust进行嵌入式开发创业的一些点滴主讲人:cz内容: 一.创业项目为什么选择Rust进行嵌入式开发(ForSTM32)?二.根据项目选用哪些Rustcrates? 三.Rust在嵌入......
  • go channel原理及使用场景
    ​​gochannel原理及使用场景​​源码解析typehchanstruct{qcountuint//Channel中的元素个数dataqsizuint//Channel中的循环队列的......