Flask入门之Bootstrap介绍使用和Flask-Nav快速导航栏
一、Bootstrap
Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。
Python中,同样可以使用Bootstrap。
1. 导入Bootstrap库
from flask_bootstrap import Bootstrap
2. 实例化
Bootstrap(app)
Samply.py
# coding:utf-8
from flask import Flask,render_template,request,url_for
from flask_bootstrap import Bootstrap app = Flask(__name__)
Bootstrap(app) @app.route('/')
def home():
return render_template('home.html',title_name = 'welcome') @app.route('/service')
def service():
return 'service' @app.route('/about')
def about():
return 'about' if __name__ == '__main__':
app.run(debug=True)
3. 定义块内容
home.html
{% extends 'bootstrap/base.html' %} #声明继承
{% import '_macro.html' as ui %} {% block title %}{{ title_name }}{% endblock %} {% block content %}
<div class="page-header">
<div class="container">
<h1>{{ self.title() }}</h1>
</div>
</div>
<div class="container">
{{ ui.input('username') }}
{{ ui.input('password',type='password') }}
</div>
{% endblock content %} {% block head %}
{{ super() }}
{% include 'includes/_head.html' %}
{% endblock %}
这时候我们看一下,运行出来是什么样子
------------------------------------------------------------------------------------------------
基本的内容有了,如果我们想要加上一个标题栏
可以使用Flask-Nav扩展,如何使用呢?
1. 导入库
from flask_nav import Nav
from flask_nav.elements import *
2. 实例化并注册一个导航栏
nav=Nav()
nav.register_element('top',Navbar(u'Flask入门',
View(u'主页','home'),
View(u'关于','about'),
Subgroup(u'项目',
View(u'项目一','about'),
Separator(),
View(u'项目二', 'service'),
),
))
3. 初始化这个实例
nav.init_app(app)
以上这些都是在Samply.py文件里
4. 渲染并定义成块,home.html
{% block navbar %}
{{ nav.top.render() }}
{% endblock %}
这时候我们看一下,运行出来是什么样子
5. 增加样式表
这个时候我们发现配色太单调了,这时候我们可以引用 BootstrapCDN (地址)的CSS样式表,只要把地址填入href中就可以
不改变原head的情况下,又增加css样式表
{% block styles %}
{{ super() }}
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/darkly/bootstrap.min.css">
{% endblock %}
这时候我们看一下,运行出来是什么样子
-------------------------------完成@@-----------------------------------
参考文档:
1. Bootstrap中文网
2. Flask-Nav 文档
附录:
Sample.py
# coding:utf-8
from flask import Flask,render_template,request,url_for
from flask_bootstrap import Bootstrap
from flask_nav import Nav
from flask_nav.elements import *
app = Flask(__name__)
Bootstrap(app)
nav=Nav()
nav.register_element('top',Navbar(u'Flask入门',
View(u'主页','home'),
View(u'关于','about'),
Subgroup(u'项目',
View(u'项目一','about'),
Separator(),
View(u'项目二', 'service'),
),
)) nav.init_app(app)
@app.route('/')
def home():
return render_template('home.html',title_name = 'welcome') @app.route('/service')
def service():
return 'service' @app.route('/about')
def about():
return 'about' @app.template_test('current_link')
def is_current_link(link):
return link == request.path if __name__ == '__main__':
app.run(debug=True)
home.html
{% extends 'bootstrap/base.html' %}
{% import '_macro.html' as ui %} {% block title %}{{ title_name }}{% endblock %} {% block content %}
<div class="page-header">
<div class="container">
<h1>{{ self.title() }}</h1>
</div>
</div>
<div class="container">
{{ ui.input('username') }}
{{ ui.input('password',type='password') }}
</div>
{% endblock content %} {% block head %}
{{ super() }}
{% include 'includes/_head.html' %}
{% endblock %} {% block styles %}
{{ super() }}
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/darkly/bootstrap.min.css">
{% endblock %} {% block navbar %}
{{ nav.top.render() }}
{% endblock %}
_macro.html
{# 定义宏 #}
{% macro input(name,value='',type='text',size=20) %}
<input type="{{ type }}"
name="{{ name }}"
value="{{ value }}"
size="{{ size }}"/>
{% endmacro %}
Flask入门之Bootstrap介绍使用和Flask-Nav快速导航栏的更多相关文章
- Bootstrap框架(基础篇)之按钮,网格,导航栏,下拉菜单
一,按钮 注意:虽然在Bootstrap框架中使用任何标签元素都可以实现按钮风格,但个人并不建议这样使用,为了避免浏览器兼容性问题,个人强烈建议使用button或a标签来制作按钮. 框架中提供了基础按 ...
- bootstrap如何去除自带的样式----导航栏中的菜单实现平滑的过渡到对应的菜单区域-------动态跟换模态框中的内容
问题1:如何去除bootstap中css中自带的overflow:hidden这个样式 今天遇见在bootstap中轮播图上的 附带图 片不能够显示出来,图片始终有一部分的高度 被隐藏了 后来通 ...
- Bootstrap 学习笔记 项目实战 响应式导航栏
导航代码HTML: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&q ...
- [置顶]
bootstrap自定义样式-bootstrap侧边导航栏的实现
前言 bootstrap自带的响应式导航栏是向下滑动的,有时满足不了个性化的需求,需要做一个类似于android drawerLayout 侧滑的菜单,这就是我要实现的bootstrap自定义侧滑菜单 ...
- Flask入门之结构重组(瘦身)-第13讲笔记
1. pip list Flask 0.10.1 Flask-Bootstrap 3.3.5.6 Flask-SQLAlchemy 2 Flask-Script 2.0.5 Flask-WTF 0.1 ...
- Flask入门第一天
一.flask介绍 flask诞生于2010年,是Armin ronacher用python语言基于Werkzeug工具箱编写的轻量级web开发框架.flask本身相当于一个内核,其他所有的功能都需要 ...
- Flask入门和快速上手
目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 路由 唯一的 UR ...
- Flask入门系列(转载)
一.入门系列: Flask入门系列(一)–Hello World 项目开发中,经常要写一些小系统来辅助,比如监控系统,配置系统等等.用传统的Java写,太笨重了,连PHP都嫌麻烦.一直在寻找一个轻量级 ...
- Flask【第1篇】:Flask介绍
Flask入门 一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Wer ...
随机推荐
- “基于数据仓库的广东省高速公路一张网过渡期通行数据及异常分析系统"已被《计算机时代》录用
今天收到<计算机时代>编辑部寄来的稿件录用通知,本人撰写的论文"基于数据仓库的广东省高速公路一张网过渡期通行数据及异常分析系统",已被<计算机时代>录 ...
- 【一天一道LeetCode】#43. Multiply Strings
一天一道LeetCode系列 (一)题目 Given two numbers represented as strings, return multiplication of the numbers ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- linux服务搭建----ftp与ftp yum源搭建
ftp服务 如果没有ftp yum -y install vsftpd (前提是你在有yum源的情况下才可以使用这条命令) service vsftpd resta ...
- Linux set命令参数及用法详解
linux set 命令 功能说明:设置shell. 语 法:set [+-abCdefhHklmnpPtuvx] 补充说明:用set 命令可以设置各种shell选项或者列 出shell变量.单个选 ...
- 飞思卡尔IMX6处理器的GPIO配置方式
在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样: [cpp] view plaincopy #define MX6 ...
- Shell Scripts - 条件语句,case语句,function功能
修改之前的代码 1.判断 $1 是否为 hello,如果是的话,就显示 "Hello, how are you ?": 2.如果没有加任何参数,就提示使用者必须要使用的参数 ...
- saiku的安装教程
Saiku是一个模块化的开源分析套件,它提供轻量级的OLAP(联机分析处理),并且可嵌入.可扩展.可配置. 环境准备 1.JDK5及以上版本. 2.Saiku Server最新版本,下载地址:http ...
- HBase学习资源
教程 <HBase.Administration.Cookbook> 中文版<HBase管理指南> <HBase in action> <HBase权威指南 ...
- How tomcat works 读书笔记十七 启动tomcat 下
在上一节中,我们程序的起始位置还是Bootstrap,现在我们通过bat文件来启动这个类. 在分析catalina.bat之前,我们先看看几个简单的我们能用到的dos命令. 基础知识 1 rem 注释 ...