django的javascript工具

aino-jstools的Python项目详细描述


aino jstools是一组用于处理javascript和django的工具。 它主要编译javascripts。

设计背景

我们想制作一个工具,在 模板简单、干净,并将所有这些javascripts编译成压缩的片段 在生产中获得最佳性能。我们想达到的另一个目标是 将在urls.pyMEDIA_URLDEBUG设置中定义的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.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的名称,后续参数是传递给该URL的参数 模式。示例:

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA,playframework,在分组之前选择order by   java如何让安卓app在一天中的特定时间做某事   web服务Java restlet文件上传使用符合RFC 5987的apache commons文件上传   如何使用java在一个用C++和Direct9编码的网页中运行应用程序?   允许生成ddl的java Postgres数据库设置   垃圾收集有哪些好的Java编码实践可以帮助Java GC?   java@RestController将表单返回到同一页面但URL不同   java Eclipse:无法将project facet动态Web模块的版本更改为2.3   无迭代器分配的内存管理Java NodeUpplicate集合   java Jackson:使用默认(反)序列化程序   Java:如何将保存在同一路径上的多个文件夹中的最大名称提取到一个文件夹名称都是数字的变量中?   java将二维字符串数组转换为二维整数数组