美文网首页python进阶
Flask-Assets中文参考

Flask-Assets中文参考

作者: nummycode | 来源:发表于2016-04-07 23:30 被阅读829次

原文地址:https://github.com/nummy/Flask-Assets-CN/

Flask-Assets插件用于将webassets整合进Flask项目中。

安装

使用下面命令进行安装

$ easy_install Flask-Assets

或者使用pip进行安装:

$ pip install Flask-Assets

使用说明

首先,创建一个Environments实例,并使用它初始化Flask应用,然后将Bundle对象注册到Assets上。

from flask import Flask
from flask.ext.assets import Environment, Bundle

app = Flask(__name__)
assets = Environment(app)

js = Bundle('jquery.js', 'base.js', 'widgets.js',
            filters='jsmin', output='gen/packed.js')
assets.register('js_all', js)

创建Bundle对象可以传递任意数量的源文件作为参数,使用output参数指定输出文件路径,使用filters参数指定过滤器。所有文件的路径都是相对路径,以应用的静态文件路径问基准。
除此之外,还可以从外部文件中读取配置来创建Bundle对象,例如YAML文件。
跟其他Flask扩展一样,一个Bundle对象可以被多个Flask应用使用,只需要调用Bundle对象的init_app方法即可。

app = Flask(__name__)
assets = flask.ext.assets.Environment()
assets.init_app(app)

使用打包文件

定义好资源文件assets之后,就可以将上配置的源文件进行合并与压缩处理,最终在页面中使用如下方式引用打包好之后的静态js文件。

{% assets "js_all" %}
    <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}

每当第一次渲染模板的时候Flask-Assets都会对配置好的静态文件进行合并压缩处理,如果静态文件发生改变,也会自动重新打包。如果在app的配置中设置ASSETS_DEBUG=True,则每个源文件都会单独输出,而不会合并成一个文件。

Flask 蓝图

如果在项目中用到蓝图,则可以给源文件加上蓝图的前缀来引用蓝图中的静态文件。例如:

js = Bundle('app_level.js', 'blueprint/blueprint_level.js')

在上面的例子中,Bundle将打包以下两个文件:

{APP_ROOT}/static/app_level.js
{BLUEPRINT_ROOT}/static/blueprint_level.js.

如果你之前使用过Python的webassets库的话,就应该知道是用webassets的时候必须设置directoryurl参数,但是在使用Flask-Assets的使用并不需要,因为Flask-Assets使用应用的静态文件路径作为代替。但是Flask-Assets中也可以自定义diectoryurl,这种情况下Flask-Assets就不能在Flask的蓝图中使用了。

直接在模板中进行配置

也可以直接在模板文件中配置打包文件:

{% assets filters="jsmin", output="gen/packed.js",
          "common/jquery.js", "site/base.js", "site/widgets.js" %}
    <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}

配置

webassets有许多配置选项,在Flask-Assets中既可以通过Environment实例对象进行设置,也可以通过app来进行设置。下面两条语句的效果是等价的。

assets_env.debug = True
app.config['ASSETS_DEBUG'] = True

更多的配置选项,请查看webassets的官方文档。

管理命令

如果你已经安装了````Flask-Script,就可以使用flaskext.assets.ManageAssets```命令:

from flask.ext.assets import ManageAssets
manager = Manager(app)
manager.add_command("assets", ManageAssets(assets_env))

上述的命令让开发者可以使用命令行命令来重新打包资源文件。

相关文章

  • Flask-Assets中文参考

    原文地址:https://github.com/nummy/Flask-Assets-CN/ Flask-Asse...

  • 序列建模(四):CV_Attention

    [Show and Tell 中文博客参考link][Show, Attend and Tell 中文博客参考li...

  • FFTW中文参考

    https://www.cnblogs.com/xh0102/p/5777092.html 、、、、、、、、、、、...

  • Git 中文参考

    原文:Git Reference协议:CC BY-NC-SA 4.0欢迎任何人参与和完善:一个人可以走的很快,但是...

  • FFTW中文参考

    转自CSDN博主:FFTW中文参考[https://blog.csdn.net/sjzcandy/article/...

  • 序列建模(五):Key-Value Memory

    [End-to-End Memory 中文博客参考link][Key-Value Memory 中文博客参考lin...

  • NumPy学习资料

    Numpy 中文资料 NumPy 中文文档 NumPy 中文用户指南 NumPy 中文参考手册

  • Pact中文参考指南

    Pact是什么 Pact是一个用于实现消费者驱动的契约测试的框架。关于什么是消费者驱动的契约测试,可以参见这篇文章...

  • 中文官网参考

    要求 1.基于我们的产品的严谨性,及科技创新为主:建议用蓝色为主色调的页面 2.基于用户考虑,应尽量达到操作的最简...

  • Linux 系统使用

    sublime 激活license参考 安装及中文输入问题参考安装好后执行下面命令支持中文 删除软件 删除不了看着...

网友评论

    本文标题:Flask-Assets中文参考

    本文链接:https://www.haomeiwen.com/subject/mohvlttx.html