用于python框架的html minifier(不仅仅是django,尽管有名字)。

django-htmlmin的Python项目详细描述


https://secure.travis-ci.org/cobrateam/django-htmlmin.png

django html是一个用于python的html小型化器,完全支持html 5。它 支持django、flask和许多其他python web框架。它还提供了 命令行工具,可用于静态网站或部署脚本。

为什么要缩小HTML代码?

客户端优化的一个重要点是缩小html。与 缩小了html代码,减少了从服务器传输的数据的大小 对于客户端,这会导致更快的加载时间。

安装

要安装django htmlmin,请在终端上运行此命令:

$ [sudo] pip install django-htmlmin

使用中间件

您只需在MIDDLEWARE_CLASSES中添加两个中间产品,然后 启用HTML_MINIFY设置:

MIDDLEWARE_CLASSES=(# other middleware classes'htmlmin.middleware.HtmlMinifyMiddleware','htmlmin.middleware.MarkRequestMiddleware',)

注意,如果您使用的是django的缓存中间件, MarkRequestMiddleware应该在FetchFromCacheMiddleware之后,并且 HtmlMinifyMiddleware应该在UpdateCacheMiddleware之后:

MIDDLEWARE_CLASSES=('django.middleware.cache.UpdateCacheMiddleware','htmlmin.middleware.HtmlMinifyMiddleware',# other middleware classes'django.middleware.cache.FetchFromCacheMiddleware','htmlmin.middleware.MarkRequestMiddleware',)

您可以选择指定HTML_MINIFY设置:

HTML_MINIFY=True

HTML_MINIFY设置的默认值是not DEBUG。只有你 如果要在^{tt11}时缩小html代码,需要将其设置为True。$ 已启用。

排除一些url

如果您不想缩小应用程序中的所有视图,并且它位于/my_app url,您可以告诉中间件不要通过 在设置中添加EXCLUDE_FROM_MINIFYING设置。py:

EXCLUDE_FROM_MINIFYING=('^my_app/','^admin/')

regex模式用于url排除。如果要排除的所有URL 你的应用程序,除了一个特定的视图,你可以使用decorator @minified_response(请检查上面的下一节)。

保留评论

中间件的默认行为是删除所有html注释。如果你 要保留注释,请设置KEEP_COMMENTS_ON_MINIFYINGTrue

KEEP_COMMENTS_ON_MINIFYING=True

使用装饰器

django htmlmin还提供了一个decorator,您只能在视图上使用它。 要缩小响应:

fromhtmlmin.decoratorsimportminified_response@minified_responsedefhome(request):returnrender_to_response('home.html')

避免响应被缩小的装饰器

如果需要,可以在视图上使用not_minified_responsedecorator 避免缩小任何特定响应,而不使用 EXCLUDE_FROM_MINIFYING设置:

fromhtmlmin.decoratorsimportnot_minified_response@not_minified_responsedefhome(request):returnrender_to_response('home.html')

使用html_minify函数

如果不使用django,则可以调用html_minify函数 手动:

fromhtmlmin.minifyimporthtml_minifyhtml='<html>    <body>Hello world</body>    </html>'minified_html=html_minify(html)

下面是一个带有Flask视图的示例:

fromflaskimportFlaskfromhtmlmin.minifyimporthtml_minifyapp=Flask(__name__)@app.route('/')defhome():rendered_html=render_template('home.html')returnhtml_minify(rendered_html)

保留评论

默认情况下,html_minify()将删除所有注释。如果你想留着它们, 您可以通过ignore_comments=False

fromhtmlmin.minifyimporthtml_minifyhtml='<html>  <body>Hello world<!-- comment to keep --></body>  </html>'minified_html=html_minify(html,ignore_comments=False)

使用命令行工具

如果您甚至不使用python,那么可以使用pyminify命令行 缩小HTML文件的工具:

$ pyminify index.html > index_minified.html

如果需要,您还可以保留评论:

$ pyminify --keep-comments index.html > index_minified_with_comments.html

开发

拉请求非常欢迎!确保您的补丁经过良好的测试。

运行测试

如果您使用的是virtualenv,您只需执行以下操作:

$ make test

社区

irc频道

#cobrateam频道在irc.freenode.net

更改日志

您可以在 Github releases page

许可证

除非另有说明,否则django-htmlmin源文件是分布式的 在许可文件中找到的bsd样式许可下。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序