flask-assets使用介绍

作用:对css、js静态文件进行打包,打包成一个文件,然后去除文件里的换行、空行等进行压缩; 而且 Flask-Assets 还会使用特定的 HTTP Response Header, 让浏览器缓存这些文件, 只有在这些文件的内容被修改时, 才会再次下载

1、插件安装:pip install flask-assets; pip install cssmin; pip install jsmin

2、在py文件中进行打包对象的定义,前面的默认路径都是 /static,Bundel() 的构造器能够接受无限个文件名作为非关键字参数, 定义那些文件需要被打包, 这里主要打包本地 static 下的 CSS 和 JS 两种类型文件,filters是使用的过滤器类型,output是压缩后文件的存储位置,目录不存在可以自动创建

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Created by miaoshuijian on 2017/7/12
 4
 5 from flask_assets import Bundle, Environment
 6
 7 # Create the Flask-Assets‘s instance
 8 assets_env = Environment()
 9 # Define the set for js and css file.
10
11 main_css = Bundle(
12     ‘media/css/bootstrap.min.css‘,
13     ‘media/css/bootstrap-responsive.min.css‘,
14     ‘media/css/font-awesome.min.css‘,
15     ‘media/css/style-metro.css‘,
16     filters=‘cssmin‘,
17     output=‘media/css/common.css‘)
18
19 # <link href="/static/" rel="stylesheet" type="text/css" media="screen"/>
20
21 main_css_screen = Bundle(
22     ‘media/css/jqvmap.css‘,
23     ‘media/css/jquery.easy-pie-chart.css‘,    Bundle(‘css/layout.less‘,filters=‘less‘), # 对less文件使用less过滤器,其他文件使用cssmin过滤器
24     filters=‘cssmin‘,
25     output=‘media/css/common_screen.css‘)
26
27 main_js = Bundle(
28     ‘media/js/jquery-1.10.1.min.js‘,
29     ‘media/js/jquery.easy-pie-chart.js‘,
30     ‘media/js/jquery.sparkline.min.js‘,
31     ‘media/js/app.js‘,
32     ‘media/js/index.js‘,
33     filters=‘jsmin‘,
34     output=‘media/js/common.js‘)

3、在模板html文件中使用打包文件

 1 {% assets "main_css" %}
 2     <link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
 3 {% endassets %}
  {% assets "main_css_screen" %}
       <link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
   {% endassets %}
 4 {% assets "main_js" %}  5 <script type="text/javascript" src="{{ ASSET_URL }}"></script>  6 {% endassets %}  7

4、注册打包文件

from packages.utils.assets import assets_env, main_css, main_js, main_css_screen

assets_env.init_app(APP)
assets_env.register(‘main_css‘, main_css)
assets_env.register(‘main_css_screen‘, main_css_screen)
assets_env.register(‘main_js‘, main_js)

5、在开发环境下不应该将 CSS/JS 文件打包, 因为我们可能会经常对这些文件进行修改, 所以需要设定在开发环境中不打包, 但生产环境中会自动进行打包

下面这个配置将控制是否打包css/js文件

    ASSETS_DEBUG = True

 

参考:1、http://blog.csdn.net/jmilk/article/details/53765082

   2、http://www.jianshu.com/p/2483777d858e

时间: 2024-08-10 16:58:36

flask-assets使用介绍的相关文章

Flask常用扩展介绍系列文章索引

这篇文章包含常用扩展介绍系列文章的索引目录. 关于扩展的基础知识可以阅读<Flask扩展的配置.初始化与管理>了解. *扩展列表按照写作时间排序 Flask-WTF 文章:关于Flask表单,我所知道的一切 GitHub主页:lepture/flask-wtf 文档:Flask-WTF - Flask-WTF 0.14 Flask-Uploads 文章:Flask文件上传(二):使用扩展实现 GitHub主页:maxcountryman/flask-uploads 文档:Flask-Uploa

11.1 Flask 框架介绍

FLASK 框架 框架介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架, 对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理, 即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”(micro) 并不表示你需要把整

【Flask】 Jinja2模板语言

Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多Jinja2的使用方法啊,下面将补充或者更加详细地说明Jinja2作为模板语言的使用. [Jinja2官方文档]http://docs.jinkan.org/docs/jinja2/ ■ 基本语义 看过之前模板的例子就知道,Jinja2做构成的模板文件中,文本内容大致可以分成几个种类.比如特殊文本(

Flask 知识总结

阅读目录 第一篇:Flask基础知识介绍 第二篇:Flask扩展小结 第三篇:Flask 配置文件 第四篇:ORM.MySQL数据库连接池 第五篇:单例模式.蓝图Blueprint 第六篇:SQLALchemy基础知识 第七篇:wtfroms组件 原文地址:https://www.cnblogs.com/supery007/p/8361481.html

深入学习Flask框架之简单创建一个项目

在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成度特别高.Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用. 一.一个简单的小例子 创建一个Flask项目的步骤: 1.导入Flask类 2.创建程序实例 3.定义视图(函数) 4.启动服务器 1

Flask开发系列之初体验

Flask开发初探 介绍 在日常开发中,如果需要开发一个小型应用或者Web接口,一般我是极力推崇Flask的,主要是因为其简洁.扩展性高. 从这篇文章开始,我会写一个关于Flask的系列文章,通过多个实例,由浅入深,融入自己使用Flask的心得,希望能帮助更多朋友学习Flask. 在此之前,建议你了解常见理论(包括视图.模板等),阅读Flask的官方文档,了解sqlalchemy,有一定的前端基础. 开发环境:ubuntu + Python2.7X + mysql 本系列文章代码将持续更新于my

学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码

在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> 分三部分,全面介绍如何基于Python微框架Flask进行Web开发.第一部分是Flask简介,介绍使用Flask框架及扩展开发Web程序的必备基础知识.第二部分则给出一个实例,真正带领大家一步步开发完整的博客和社交应用Flasky,从而将前述知识融会贯通,付诸实践.第三部分介绍了发布应用之前必须考虑的事项

一线Python运维澳洲5盘口出租搭建开发带你秒懂Flask框架

大家好,下面现在开始分享flask开发,先看下本次分享的内容: 1.Flask Web框架介绍 Flask是微型web框架,框架本身十分精简,微型并不代表其功能弱,核心代码基于Werkzeug, Jinja 2 这两个库,它以插件形式的进行功能扩展,且插件易于安装与使用,并且可以自行开发扩展插件 与其他web框架类似,flask中请求(request),路由(route),响应(response)构成其完整的一个基本http流程. 2.作为入门flask框架非常易于使用 了解其基本结构后,可以迅

Flask框架—session组件详解

一.flask session简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件缺点: 功能单一 session是保存在浏览器中的cookie中,不安全, 大小有限制 而第三方插件flask-session可支持redis.memcached.文本等session的存储. 二.内置session处理机制 Cookie与Session 我们回顾一下cookie和session知识 Cookie Cookie意为“甜饼

app服务器

http://heipark.iteye.com/blog/1847421http://heipark.iteye.com/blog/1847421http://wenku.baidu.com/view/f761cc1f55270722192ef769.html 服务框架:1.servlet2.netty协议:1.http 1.02.http 1.1db:mysql就可以了ORM框架:mybatis缓存:redis 技术:网络通信: tcp,http等:Web服务:servlet, cgi脚本,