admin管理员组

文章数量:1026989

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

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

Answer 1:

看看这里

我知道它主要用于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和源可在 。 希望这将是有益的。

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)

.html

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

return htmlmin.minify(rendered_html, remove_empty_space =True)

.html

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

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

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

Answer 1:

看看这里

我知道它主要用于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和源可在 。 希望这将是有益的。

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)

.html

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

return htmlmin.minify(rendered_html, remove_empty_space =True)

.html

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

本文标签: flask导出html从Jinja2的模板瓶应用压缩HTML输出(Minify HTML output from Flas