【简说Python WEB】Bootstrap
系统环境:Ubuntu 18.04.1 LTS
Python使用的是虚拟环境:virutalenv
Python的版本:Python 3.6.9
【简说Python WEB】Bootstrap
Bootstrap的导航组件应用
安装bootstrap:
$ pip install flask-bootstrap
bootstrap在flask web应用中实例初始化,需要如下代码 :
from flask_bootstrap import Bootstrap
#...
bootstrap =Bootstrap(app)
Flask web应用的源码hello.py如下:
from flask_bootstrap import Bootstrap
from flask import render_template
from flask import Flask
app = Flask(__name__)
bootstrap =Bootstrap(app)
@app.route('/')
@app.route('/user/<name>')
def user(name):
return render_template('user.html', name=name)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9000)
调用的user.html模板代码:
{% extends "bootstrap/base.html" %}
{% block title %}zsdblog{% endblock %}
{% block navbar %}
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- 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="#">ZSD博客</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="#">技术文章 <span class="sr-only">(current)</span></a></li>
<li><a href="#">论坛</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">MySQL数据库 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">MySQL基础篇</a></li>
<li><a href="#">MySQL性能篇</a></li>
<li><a href="#">MySQL高可用</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">MySQL源码分析</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">MySQL 前沿趋势</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">关于我</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
{% endblock %}
{% block content %}
<div class="container">
<div class="page-header">
<h1>您好, {{ name }},欢迎来到我的博客!</h1>
</div>
</div>
{% endblock %}
其中:
{% extends "bootstrap/base.html" %}导入bootstrap骨架,引入Bootstrap所有CSS和JavasScript文件。
定义三个区块,title,navbar,content。分别代表标题区域,导航区域内容区域。
其中导航区域,引入了导航组件,案例具体参考的官网:https://v3.bootcss.com/components/。有兴趣的同学,都可以去复用上述的组件。
呈现的效果如下:

404,500错误页面定制化
hello_error.py
- 需要添加的自定义错误的代码,如下:
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500
添加templates/base.html基础基类页面
{% extends "bootstrap/base.html" %}
{% block content %}
<div class="container">
{% block page_content %}{% endblock %}
</div>
{% endblock %}
{% block scripts %}
{{ super() }}
{% endblock %}
上述这个模板,可以看到我定义了一个新的区块,叫做page_content。下面可以引用。
templates/404.html`添加404模板页面:
{% extends "base.html" %}
{% block title %}ZSD博客 - 页面没有找到{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>404错误,页面没有找到</h1>
</div>
{% endblock %}
templates/500.html添加500模板页面:
{% extends "base.html" %}
{% block title %}ZSD博客 - 500错误{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>500错误,内部服务错误</h1>
</div>
效果如下:


【简说Python WEB】Bootstrap的更多相关文章
- 【简说Python WEB】视图函数操作数据库
目录 [简说Python WEB]视图函数操作数据库 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 ...
- 【简说Python WEB】Flask应用的文件结构
目录 [简说Python WEB]Flask应用的文件结构 1.文件结构的目录 2.配置程序--config.py 3.app应用包 4.剥离出来的email.py 5.蓝本(BLueprint)的应 ...
- 【简说Python WEB】Flask-Moment
目录 [简说Python WEB]Flask-Moment 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...
- 【简说Python WEB】数据库
目录 [简说Python WEB]数据库 数据库表 docker安装MySQL Flask-SQLAlchemy操纵MySQL数据库 初始化 定义模型 定义关系 数据库的CRUD操作 创建表 inse ...
- 【简说Python WEB】Web应用部署
目录 [简说Python WEB]Web应用部署 应用层 缓存层 数据层 Gunicorn 的应用 1.安装Gunicorn 2.Gunicorn的启动 Nginx 的应用 1.docker方式部署安 ...
- 【简说Python WEB】flask-mail电子邮件
目录 flask-mail flask shell发送邮件 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...
- 【简说Python WEB】flask-mail电子邮件异步Asynchronous
系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 flask-mail电子邮件异步Asynchronou ...
- 【简说Python WEB】pyechart在flask中的应用
个人笔记总结,可读性不高.只为自己总结用.怕日后忘记. 这里用到了tushare,pandas等python组件. pyechart的案例 c = ( Bar() .add_xaxis([" ...
- Python Web开发:Django+BootStrap实现简单的博客项目
创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...
- 我的第一个python web开发框架(3)——怎么开始?
小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...
随机推荐
- #斜率优化,二分#CF631E Product Sum
题目 有一个数列 \(a\),其权值为 \(\sum_{i=1}^ni*a_i\), 现在可以任意选择其中一个数字扔到任意位置,使权值和最大. \(n\leq 2*10^5,|a_i|\leq 10^ ...
- 使用Apache POI和Jsoup将Word文档转换为HTML
简介 在现代办公环境中,Word文档和HTML页面都是常见的信息表达方式.有时,我们需要将Word文档转换为HTML格式,以便在网页上展示或进行进一步的处理.本文将介绍如何使用Apache POI库和 ...
- 日调用量超600亿次,HMS Core HiAI Foundation助力AI应用高效开发
随着新技术的不断演进,人工智能已经广泛地应用到教育.金融.物流.零售.交通.医疗等各个领域.而在AI高速发展的当下,高效开发变得更为重要,如何将创意想法与AI技术深度融合,迅速转化为可落地的AI应用, ...
- 【译】Visual Studio 中的 GitHub Copilot:2023年回顾
在快速发展的软件开发世界中,保持领先是至关重要的.在 Visual Studio 中引入AI,特别是 GitHub Copilot,已经彻底改变了开发人员的编码方式.通过将 Copilot 集成到 V ...
- 开发指导—利用CSS动画实现HarmonyOS动效(二)
注:本文内容分享转载自HarmonyOS Developer官网文档 点击查看<开发指导-利用CSS动画实现HarmonyOS动效(一)> 3. background-position ...
- IIS 动态与静态压缩
前言 我们有时候需要在页面启动的时候进行压缩代码,这时候iis已经帮助我们做好了动态压缩代码. 正文 静态压缩及动态压缩的区别 IIS7中的HTTP压缩分为"静态内容压缩"和&qu ...
- 重新整理数据结构与算法(c#)—— 顺序存储二叉树[十九]
前言 二叉树顺序存bai储是二叉树的一种存储方式.将二du叉树存储在一zhi个数组中,通过存储元素的下dao标反映元素之间的父子关系. 正文 这个概念比较简单,比如一个节点的在数组的index是x,那 ...
- 力扣443(java)-压缩字符串(中等)
题目: 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始.对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中.否则,需要向 s ...
- 走进RDS|说说关系型数据库与Serverless
简介:看到如今Serverless在云计算行业喷薄欲出的态势,像极了<星星之火,可以燎原>中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向.本文将和大家说说关 ...
- 云原生时代如何用 Prometheus 实现性能压测可观测-Metrics 篇
简介:可观测性包括 Metrics.Traces.Logs3 个维度.可观测能力帮助我们在复杂的分布式系统中快速排查.定位问题,是分布式系统中必不可少的运维工具. 作者:拂衣 什么是性能压测可观测 ...