跳转到主要内容

Django的JavaScript工具

项目描述

aino-jstools是一套用于处理JavaScript和Django的工具。主要功能是编译JavaScript。

设计背景

我们希望创建一个工具,使得在模板中包含多个JavaScript变得简单、干净,并在生产中将这些JavaScript编译成压缩文件,以优化性能。我们还希望实现的目标是向JavaScript代码公开在urls.pyMEDIA_URLDEBUG设置中定义的URL。我们的未来计划是实现比Django提供的更干净的JavaScript i18n实现。

要求

  • Django 1.x

  • Python 2.5+

  • Java(用于编译JavaScript)

安装

jstools添加到项目设置中的INSTALLED_APPS。可选地,将jstools/urls.py添加到您的urls.py

(r'^jstools/', include('jstools.urls'))

模板使用

首先在模板中按以下方式定义您的脚本

{% scripts "js/mysite-min.js" %}
    http://yui.yahooapis.com/3.1.0/build/yui/yui-min.js
    js/a.js
    js/b.js
    {% url jshelper %}
{% endscripts %}

settings.DEBUGTrue时,这会转换为

<script src="http://yui.yahooapis.com/3.1.0/build/yui/yui-min.js"></script>
<script src="{{ MEDIA_URL }}js/a.js"></script>
<script src="{{ MEDIA_URL }}js/b.js"></script>
<script src="{% url jshelper %}"></script>

settings.DEBUGFalse时,这会转换为

<script src="{{ MEDIA_URL }}js/mysite-min.js?TIMESTAMP"></script>

其中TIMESTAMP基于{{ MEDIA_ROOT }}js/myste-min.js的修改日期

编译

编译所有定义的脚本只需运行

python manage.py buildjs

如果您正在使用默认的filesystem和/或app_directories,则此管理命令将找到所有带有{% scripts %}标记的模板,并将其内容编译为标记的第一个参数。

jshelper视图

此视图将输出命名URL,settings.MEDIA_URLsettings.DEBUG(建议你在模板中覆盖此设置,除非你想在更改DEBUG设置时重新编译脚本)以在JavaScript代码中使用。默认情况下,你将可以通过名为JSTOOLS的JavaScript对象访问,你可以通过设置JSTOOLS_NAMESPACE来更改其名称。

JSTOOLS.settings.MEDIA_URL

settings.MEDIA_URL

JSTOOLS.settings.DEBUG

settings.DEBUG

JSTOOLS.get_url

此函数将获取你在urls.py中定义的命名URL。第一个参数是命名URL的名称,后续参数是传递给该模式的参数。示例

JSTOOLS.get_url('jshelper');
JSTOOLS.get_url('blog_entry', 2010, 04, 25, 'aino-jstools');

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

aino-jstools-0.1.0.6.tar.gz (3.8 MB 查看哈希)

上传时间

由...