django的javascript工具
aino-jstools的Python项目详细描述
aino jstools是一组用于处理javascript和django的工具。 它主要编译javascripts。
设计背景
我们想制作一个工具,在 模板简单、干净,并将所有这些javascripts编译成压缩的片段 在生产中获得最佳性能。我们想达到的另一个目标是 将在urls.py,MEDIA_URL,DEBUG设置中定义的url公开到 javascript代码。我们的未来包括对i18n进行更清洁的实现 而不是django提供的。
要求
- django 1.x
- Python2.5+
- Java(用于编译Java脚本)
安装
在项目设置中的INSTALLED_APPS中包含jstools。 可选地将jstools/url.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的名称,后续参数是传递给该URL的参数 模式。示例:
JSTOOLS.get_url('jshelper'); JSTOOLS.get_url('blog_entry', 2010, 04, 25, 'aino-jstools');