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是压缩后文件的存储位置,目录不存在可以自动创建
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by miaoshuijian on 2017/7/12 from flask_assets import Bundle, Environment # Create the Flask-Assets's instance
assets_env = Environment()
# Define the set for js and css file. main_css = Bundle(
'media/css/bootstrap.min.css',
'media/css/bootstrap-responsive.min.css',
'media/css/font-awesome.min.css',
'media/css/style-metro.css',
filters='cssmin',
output='media/css/common.css') # <link href="/static/" rel="stylesheet" type="text/css" media="screen"/> main_css_screen = Bundle(
'media/css/jqvmap.css',
'media/css/jquery.easy-pie-chart.css',
Bundle('css/layout.less',filters='less'), # 对less文件使用less过滤器,其他文件使用cssmin过滤器
filters='cssmin',
output='media/css/common_screen.css') main_js = Bundle(
'media/js/jquery-1.10.1.min.js',
'media/js/jquery.easy-pie-chart.js',
'media/js/jquery.sparkline.min.js',
'media/js/app.js',
'media/js/index.js',
filters='jsmin',
output='media/js/common.js')
3、在模板html文件中使用打包文件
{% assets "main_css" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
{% endassets %}
{% assets "main_css_screen" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
{% endassets %}
{% assets "main_js" %} <script type="text/javascript" src="{{ ASSET_URL }}"></script> {% endassets %}
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
flask-assets使用介绍的更多相关文章
- Python: Flask框架简单介绍
接触Python之后我第一次听说Flask,我就根据自己搜罗的知识尽可能简洁的说出来.如果不准确的地方还请指正,谢谢. Flask是什么? Flask是基于Python编写的微 ...
- Flask 框架介绍
FLASK 框架 框架介绍 简单来说: 小 扩展性极强 官方文档 点这里 Flask 和 Django 的区别 Django 无socke,依赖第三方模块wsgi 路由系统(CBV,FBV) 中间件, ...
- 客官,您的 Flask 全家桶请收好
http://www.factj.com/archives/543.html Flask-AppBuilder - Simple and rapid Application buil ...
- 在Mac上使用Nginx和FastCGI部署Flask应用
最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验. 应用 这里使用的应用就是官方的文档中给出的Flaskr. 安装Nginx ...
- 读Flask源代码学习Python--config原理
读Flask源代码学习Python--config原理 个人学习笔记,水平有限.如果理解错误的地方,请大家指出来,谢谢!第一次写文章,发现好累--!. 起因 莫名其妙在第一份工作中使用了从来没有接 ...
- 【Flask】 Jinja2模板语言
Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多 ...
- Flask类的属性和方法大全
Flask Property__class____dict____doc____module__app_ctx_globals_classconfig_classdebugdefault_config ...
- Python框架学习之用Flask创建一个简单项目
在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...
- flask结合celery实现异步响应HTTP请求
摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...
- Flask 框架
装饰器知识回顾 http://www.cnblogs.com/0bug/p/7978595.html 普通装饰器格式: def wrapper(func): def inner(*args, **kw ...
随机推荐
- 玩转Metasploit系列(第二集)
在上一节的内容中,大家了解了Metasploit的结构.这一节我们主要介绍的是msfconsole的理论. msfconsole理论 在MSF里面msfconsole可以说是最流行的一个接口程序.很多 ...
- 类似web风格的 Winform 分页控件
背景 最近做一个Winform的小程序,需要用到分页,由于之前一直在用 TonyPagerForWinForm.dll ,但该库没有源代码,网上找的也不全面,索性就准备自己改造一个.在园子里翻了一下, ...
- python基础===修改idle的输入风格
http://blog.csdn.net/aq_cainiao_aq/article/details/51701861
- Ubunt 服务教程集锦
1.Ubuntu管理服务安装(强烈推荐最好用Xshell和Xftp): 序号 服务名 介绍 教程地址 windows客户端 1 VNC 可以图形界面管理Ubuntu ubuntu安装vncserver ...
- 肢解 HTTP 服务器构建
更好阅读请戳 这里 1. 最简单的 http 服务器 // server.js var http = require("http"); http.createServer(func ...
- Log4Net的WebApplication使用
一.Log4Net的WebApplication使用 1.首先使用nuget 添加log4Net 到WebApplication项目中 log4j每个符号的具体含义:%d %5p %c{1}:%L - ...
- Getting or Setting Pixels
Getting or Setting Pixels The safe (slow) way Suppose you are working on an Image<Bgr, Byte>. ...
- --a和a--
编程很纠结的一个问题便是a--和--a. #include<iostream> using namespace std; int main(int argc, char const *ar ...
- delphi string,pchar,char的比较
来自:http://blog.163.com/kat_/blog/static/189284269201152513331999/ ---------------------------------- ...
- poj 2264(LCS)
Advanced Fruits Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2158 Accepted: 1066 ...