是否有一个瓶或Jinja2的配置标记/扩展自动运行如下渲染模板后的HTML输出?

Answer 1:

看看这里https://github.com/cobrateam/django-htmlmin#using-the-html_minify-function

我知道它主要用于Django的,但示例演示如何使用此项目的代码做你想要什么用烧瓶观点,我觉得。

Answer 2:

找到一个更好的办法来做到这一点。 您可以运行如下用这种方法你所有的网页:

from flask import Flask

from htmlmin.main import minify

app = Flask(__name__)

@app.after_request

def response_minify(response):

"""

minify html response to decrease site traffic

"""

if response.content_type == u'text/html; charset=utf-8':

response.set_data(

minify(response.get_data(as_text=True))

)

return response

return response

Answer 3:

使用装饰。

from htmlmin.decorator import htmlmin

@htmlmin

def home():

...

或者,你可以使用:

re.sub(r'>\s+ ') # results ''

Answer 4:

我写了一个烧瓶延伸来实现这一目的。 您可以通过安装它pip install flask-htmlmin和源可在https://github.com/hamidfzm/Flask-HTMLmin 。 希望这将是有益的。

Answer 5:

我用下面的装饰

import bs4

import functools

import htmlmin

def prettify(route_function):

@functools.wraps(route_function)

def wrapped(*args, **kwargs):

yielded_html = route_function(*args, **kwargs)

soup = bs4.BeautifulSoup(yielded_html, 'html.parser')

return soup.prettify()

return wrapped

def uglify(route_function):

@functools.wraps(route_function)

def wrapped(*args, **kwargs):

yielded_html = route_function(*args, **kwargs)

minified_html = htmlmin.minify(yielded_html)

return minified_html

return wrapped

并简单地包裹着,像这样的默认render_template功能

if app.debug:

flask.render_template = prettify(flask.render_template)

else:

flask.render_template = uglify(flask.render_template)

这已经添加到缓存的是汽车的额外好处,因为我们实际上并不接触app.route

Answer 6:

为了扩大从@olly_uk答案和@Alexander评论的实用性,它看来, Django的htmlmin扩展现在被设计与Django的比其他框架中使用。

从文档在这里 ,您可以手动使用html_minify功能瓶的观点,就像这样:

from flask import Flask

from htmlmin.minify import html_minify

app = Flask(__name__)

@app.route('/')

def home():

rendered_html = render_template('home.html')

return html_minify(rendered_html)

Answer 7:

修改为htmlmin的最新版本@Bletch答案。

from flask import Flask

import htmlmin

app = Flask(__name__)

@app.route('/')

def home():

rendered_html = render_template('home.html')

return htmlmin.minify(rendered_html)

https://htmlmin.readthedocs.io/en/latest/quickstart.html

缩小的HTML仍然有标签之间的一些空间。 如果我们想删除,然后remove_empty_space =True属性需求的同时,模板被渲染以复加。

return htmlmin.minify(rendered_html, remove_empty_space =True)

https://htmlmin.readthedocs.io/en/latest/reference.html

文章来源: Minify HTML output from Flask application with Jinja2 templates

flask导出html,从Jinja2的模板瓶应用压缩HTML输出(Minify HTML output from Flas相关推荐

  1. flask框架中的Jinja2模板引擎

    简介 在flask框架中通常使用Jinja2模板引擎来实现复杂页面的渲染. 本章主要介绍Jinja2模板引擎的基本结构和使用方法. 如何使用flask框架渲染模板 在模板中传递一个或者多个参数 if语 ...

  2. Flask学习之旅——2.1 模板简介及基础使用

    Flask学习之旅--2.1 模板简介及基础使用 前言 本文为<知了传课--模板简介>的学习笔记. 原文地址:第一节:模板简介 - Python框架Flask基础教程 - 知了传课 (zl ...

  3. Flask Web开发——(二)模板

    视图函数的作用是生成请求的响应.很多情况下,请求会改变应用的状态,而这种变化就发生在视图函数中. 以用户在网站中注册新账户的过程为例.用户在表单中输入电子邮件地址和密码,然后提交.服务器接收到包含用户 ...

  4. Flask学习之旅——2.2 模板过滤器

    Flask学习之旅--2.2 模板过滤器 前言 本文为<知了传课--Jinja2模版过滤器>的学习笔记. 原文地址:第三节:模板过滤器 - Python框架Flask基础教程 - 知了传课 ...

  5. 【免费思维导图软件】万彩脑图大师教程 | 导出导入思维导图模板

    在万彩脑图大师中, 你可以轻松导出导入思维导图模板进行保存或编辑,具体操作步骤如下: 一.导出模板 1)单击左上角的"文件"-点击"保存成模板"-输入标题,关键 ...

  6. java 动态导出excel表单 无模板文件下载

    java 动态导出excel表单 无模板文件下载 public ResponseEntity<byte[]> exportStanding(@PathVariable Long signu ...

  7. java 动态导出excel表单 无模板本地生成

    java 动态导出excel表单 无模板本地生成 这里使用的是alibaba的公共类excelWriter,注意在pom文件中要引入easyExcel的依赖 public void exportExc ...

  8. java使用EasyExcel实现导入导出几种方式(导入、模板导出、和不需要模板的导出)

    java通过EasyExcel实现导入导出(导入.模板导出.和不需要模板的导出) 此文章只是涉及到简单的导入导出 通过实体模板导入数据 无实体模板导入数据 导出数据 通过模板导出数据 使用到的mave ...

  9. Flask学习之旅——2.6 模板继承

    Flask学习之旅--2.6 模板继承 前言 本文为<知了传课--模版继承>的学习笔记. 原文地址:第八节:模板继承 - Python框架Flask基础教程 - 知了传课 (zlkt.ne ...

最新文章

  1. 2021年大数据基础(三):​​​​​​​​​​​​​​​​​​​​​大数据应用场景
  2. 半吊子架构师,一来就想干掉RabbitMQ ...
  3. 使COUNT(*)查询总数变快
  4. gradle更换仓库 解决下载速度慢问题
  5. CCF-CSP 201703-2 试题名称: 学生排队(满分代码)
  6. 科达南沙电子警察“扩编”
  7. python utf8_肿么在Python里使用UTF-8编码
  8. EasyUI combobox
  9. openpyxl 绘制饼形图_openpyxl3.0官方文档(13)—— 饼图
  10. 连续七天熬夜3D建模师终于出手,让老板增加薪资待遇,分享使用3D建模软件的6个行业
  11. Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
  12. Chrome , Firfox 对应IE fireEvent 的方法
  13. React 事件总结
  14. ai如何置入_AI中如何导入图形图像?
  15. coreldraw矫正两张图_CorelDRAW矫正图像方法-CDR中如何矫正图像_好特教程
  16. 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323
  17. october php,关于Laravel之October的安装配置过程
  18. ArcGIS空间数据分析实用工具——方向分布(标准差椭圆)
  19. C# 获取电脑序列号和主板序列号
  20. Kafka Exception:Bootstrap broker disconnected Consumer disconnected

热门文章

  1. Leetcode算法Java全解答--16. 最接近的三数之和
  2. 蒜头君:所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 33 加 11,如果是偶数,则除以 22,得到的结果再按照上述规则重复处理,最终总能够得到 11。如,假定初始整数为 5
  3. 用在游戏里的编程语言
  4. python十进制转八进制_python进制转换(二进制、十进制和十六进制)及注意事项...
  5. 10进制数转化为16进制数
  6. Error java: 程序包 不存在,解决
  7. 2004年,我们关注的新闻—IT
  8. 熊猫入金讲付费一种能力
  9. 【学习笔记】pytorch中squeeze()和unsqueeze()函数介绍
  10. Vue 将秒转化为时分秒