使用Bootstrap-Flask在Flask项目中集成Bootstrap
source link: https://greyli.com/integrate-bootstrap-in-flask-application-with-bootstrap-flask/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
使用Bootstrap-Flask在Flask项目中集成Bootstrap
Bootstrap-Flask是一个简化在Flask项目中集成前端开源框架Bootstrap过程的Flask扩展。使用Bootstrap可以快速的创建简洁、美观又功能全面的页面,而Bootstrap-Flask让这一过程更加简单和高效。尤其重要的是,Bootstrap-Flask支持最新版本的Bootstrap 4版本。
Bootstrap-Flask logo
GitHub项目主页:https://github.com/greyli/bootstrap-flask
和Flask-Bootstrap的区别
简单来说,Bootstrap-Flask的出现是为了替代不够灵活且缺乏维护的Flask-Bootstrap。它的主要设计参考了Flask-Bootstrap,其中渲染表单和分页部件的宏基于Flask-Bootstrap中的相关代码修改实现。和Flask-Bootstrap相比,前者有下面这些优点:
- 去掉了内置的基模板,换来更大的灵活性,提供了资源引用代码生成函数
- 支持Bootstrap 4
- 标准化的Jinja2语法
- 提供了更多方便的宏,比如简单的分页导航部件、导航链接等
- 宏的功能更加丰富,比如分页导航支持传入URL片段
- 统一的宏命名,即“render_*”,更符合直觉
安装与初始化
你如果使用过Flask-Bootstrap,那么除了安装时的名称外,这个过程基本没有不同。
如果你使用工厂函数创建程序实例,那么可以使用下面的方式初始化扩展:
Bootstrap-Flask提供了哪些功能
2个资源加载函数
在简单的示例程序中,或是在开发时,你可以使用它提供的两个快捷方法来生成Bootstrap资源引用代码,如下所示:
7个快捷渲染宏
目前,Bootstrap-Flask一共提供了7个宏,分别用来快捷渲染各类Bootstrap页面组件,并提供了对扩展Flask-WTF、Flask-SQLAlchemy的支持。
宏
模板路径
说明
render_field()
bootstrap/form.html
渲染一个WTForms表单字段
render_form()
bootstrap/form.html
渲染一个WTForms表单类
render_pager()
bootstrap/pagination.html
渲染一个简单分页导航,包含上一页和下一页按钮
render_pagination()
bootstrap/pagination.html
渲染一个标准分页导航部件
render_nav_item()
bootstrap/nav.html
渲染一个导航条目
render_breadcrumb_item()
bootstrap/nav.html
渲染一个面包屑条目
render_static()
bootstrap/utils.html
渲染一个资源引用语句,即 <link>
或<script>
标签语句
使用方法相当简单,以渲染Flask-WTF(WTForms)的表单类的render_form()宏为例,你只需要从对应的模板路径导入宏,然后调用即可并传入必要的参数:
你可以在项目仓库的examples目录下找到一个完整的示例程序,示例程序的运行方式如下:
现在访问http://localhost:5000即可看到示例程序主页。示例程序包含所有宏的实际调用示例,其中分页宏示例页面如下图所示:
分页宏示例
欢迎贡献代码
这个项目还刚刚起步,各方面都有需要完善的地方,近期我会为它编写一份完善的文档,欢迎有兴趣的朋友贡献代码!
《使用Bootstrap-Flask在Flask项目中集成Bootstrap》上有6条评论
-
Yu Lei 2020年9月18日下午3:47
{%from ‘bootstrap/form.html’ import render_form%}
这段代码总是报错,显示jinja2.exceptions.TemplateNotFound: bootstrap/form.html。
请问,这是因为需要项目里面有bootstrap文件夹,然后这个文件及下面form.html文件吗?
回复 ↓-
这种一般是包安装出错,可以执行下这两条命令重新安装试试:
$ pip uninstall bootstrap-flask flask-bootstrap
$ pip install bootstrap-flask回复 ↓
-
-
moyu 2020年6月17日上午9:43
你好,有个问题请教,我想实现一个SelectField+StringField+SubmitField的表单功能,用户先选择过滤的类型,然后输入关键字,点提交。后台识别输入类型,根据关键字筛选数据返回给用户。
现在的问题是,如何在视图函数中获得SelectField中用户选择的值?
如果不行的话有没有其它替代方案?回复 ↓ -
marc 2020年5月14日下午9:38
您好。我运行了flask开发实战中的代码,在部署bluelog到远程主机时出现问题,在本地可以运行并显示网页,但是同样的代码在乌班图18.04系统中提示jinja2.exceptions.TemplateNotFound: bootstrap/nav.html,其中bootstrap已正确初始化,并且在win10中可以完美运行,想请教下您会是什么原因呢
回复 ↓-
一般这个报错都是依赖安装的问题。你需要先检查下 Boostrap-Flask 有没有正确安装,如果安装了那么要确保没有同时安装 Flask-Bootstrap,否则需要卸载两个包,重新安装 Bootstrap-Flask。
回复 ↓
-
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK