使用 Flask-Minify 在 Flask 中缩小 HTML
Flask 提供 HTML 渲染作为输出,通常希望输出的 HTML 应该简洁并且也能达到目的。在本文中,我们将使用库 - Flask-Minify 显示 Flask 响应的输出路由的缩小。
缩小的优势
- 网站加载速度更快,因为上传和下载的行更少。
- 随着网络上传输的数据减少,带宽成本降低。
- 使用前无需解压。
- 随着网站加载速度更快,用户体验和搜索引擎优化也会得到改善。
安装
要安装此模块,请在终端中键入以下命令。
pip install Flask-Minify
函数: minify(self,app=None,html=True,js=True,cssless=True,fail_safe=True,bypass=[],passive=False,static=True,script_types=[])
参数:
- app:要启动的 Flask 应用实例。
- js:是否缩小 js。
- cssless: 是否缩小css。
- fail_safe:避免在缩小时引发错误。
- 绕过:要绕过缩小的端点列表。
- 被动:有选择地缩小路由
- 静态:启用压缩静态文件 css、less 和 js。
- script_types:限制js缩小的脚本类型列表。
分步实施
第 1 步:导入库并使用应用程序上下文初始化 Minify。
Python3
from flask import Flask
from flask_minify import minify
app = Flask(__name__)
# initializing minify for html, js and cssless
minify(app=app, html=True, js=True, cssless=True)
Python3
@app.route('/')
def sample_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
Python3
if __name__ == "__main__":
app.run()
Python3
from flask import Flask
from flask_minify import minify, decorators
app = Flask(__name__)
# passive = True, just performs minification to required routes
minify(app=app, passive=True)
# minifies this route
@app.route('/')
@decorators.minify(html=True, js=True, cssless=True)
def sample_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
# doesn't minify this route
@app.route('/no_mini')
def no_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
if __name__ == "__main__":
app.run()
步骤2:添加路由,输出带有缩小代码的HTML。
蟒蛇3
@app.route('/')
def sample_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
第 3 步:运行应用程序
蟒蛇3
if __name__ == "__main__":
app.run()
输出 :
示例 2:对某些路由应用缩小
在这种情况下,我们可以根据要求仅对必需的路线进行缩小,而不是全部。这是通过在传递上下文时传递“passive=True”来完成的。
蟒蛇3
from flask import Flask
from flask_minify import minify, decorators
app = Flask(__name__)
# passive = True, just performs minification to required routes
minify(app=app, passive=True)
# minifies this route
@app.route('/')
@decorators.minify(html=True, js=True, cssless=True)
def sample_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
# doesn't minify this route
@app.route('/no_mini')
def no_minify():
return """
GeeksforGeeks | A computer science portal for geeks
"""
if __name__ == "__main__":
app.run()
输出 :