Django的JavaScript工具
项目描述
aino-jstools是一套用于处理JavaScript和Django的工具。主要功能是编译JavaScript。
设计背景
我们希望创建一个工具,使得在模板中包含多个JavaScript变得简单、干净,并在生产中将这些JavaScript编译成压缩文件,以优化性能。我们还希望实现的目标是向JavaScript代码公开在urls.py、MEDIA_URL、DEBUG设置中定义的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.DEBUG为True时,这会转换为
<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.DEBUG为False时,这会转换为
<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_URL,settings.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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8f32c207f6247db724b2a4cde6ac6587b4b4193347119c57a6ae27954feb54a5 |
|
MD5 | e806d41cf1f6da5654c05ed92766b7ce |
|
BLAKE2b-256 | 4d30ff1fda71b960891bc5dd452d0ff42e9e8e7ab7c59a6f6be16209236e6142 |