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
版权声明:本文标题:flask导出html,从Jinja2的模板瓶应用压缩HTML输出(Minify HTML output from Flas 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694676102a254930.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论