的JavaScript ¶ T0>

虽然Django的大部分内核是Python,但是admingis contrib应用程序包含JavaScript代码。

在编写JavaScript代码以包含在Django中时,请遵循这些编码标准。

代码样式

  • 请符合.editorconfig文件中指定的缩进样式。 我们建议使用带有EditorConfig支持的文本编辑器来避免缩进和空格问题。 大多数JavaScript文件使用4个空格缩进,但有一些例外。
  • 命名变量时,请使用camelCase而不是underscore_case 不同的JavaScript文件有时使用不同的代码样式。 请尝试符合每个文件的代码样式。
  • 使用JSHint代码linter来检查你的代码是否有错误和样式错误。 当运行JavaScript测试时,JSHint将运行。 我们还建议您在文本编辑器中安装一个JSHint插件。
  • 在可能的情况下,编写即使页面结构随后更改为JavaScript的代码。 例如,当绑定点击处理程序时,使用$('body')。on('click', 选择器, func) t3 >而不是$(selector).click(func) 这使得项目更容易使用JavaScript来扩展Django的默认行为。

JavaScript补丁

Django的管理系统利用jQuery框架来增加管理界面的功能。 总而言之,强调管理JavaScript性能并最大限度地减少整体管理媒体文件大小。 提供压缩或“缩小”版本的JavaScript文件在这方面被认为是最佳做法。

为此,JavaScript文件的修补程序应包括将来开发的原始代码(例如foo.js)和用于生产使用的压缩版本(例如foo.min.js 代码库中文件的任何链接都应指向压缩版本。

压缩JavaScript

为了简化提供优化的JavaScript代码的过程,Django包含一个方便的Python脚本,用于创建一个“最小化”版本。 运行它:

$ pip install closure
$ python django/contrib/admin/bin/compress.py

在幕后,compress.py是用Java编写的Closure Compiler的前端。 Closure Compiler库没有与Django捆绑在一起,但是您可以使用如上所述的pip来安装它。 Closure Compiler库需要Java 7或更高版本。

在提交Django JavaScript的修补程序时,请不要忘记运行compress.py并包含最小化脚本的diff

JavaScript测试

Django的JavaScript测试可以在浏览器或命令行中运行。 测试位于顶级js_tests目录中。

写作测试

Django的JavaScript测试使用QUnit 这是一个示例测试模块:

module('magicTricks', {
    beforeEach: function() {
        var $ = django.jQuery;
        $('#qunit-fixture').append('<button class="button"></button>');
    }
});

test('removeOnClick removes button on click', function(assert) {
    var $ = django.jQuery;
    removeOnClick('.button');
    assert.equal($('.button').length === 1);
    $('.button').click();
    assert.equal($('.button').length === 0);
});

test('copyOnClick adds button on click', function(assert) {
    var $ = django.jQuery;
    copyOnClick('.button');
    assert.equal($('.button').length === 1);
    $('.button').click();
    assert.equal($('.button').length === 2);
});

有关QUnit支持的断言的类型的信息,请参考QUnit文档。

运行测试

JavaScript测试可以从Web浏览器或从命令行运行。

从网页浏览器测试

要从Web浏览器运行测试,请在浏览器中打开js_tests/tests.html

要测试运行测试时的代码覆盖率,您需要通过HTTP查看该文件。 查看代码覆盖率:

从命令行进行测试

要从命令行运行测试,您需要安装Node.js

安装Node.js后,通过从Django检出的根目录运行以下内容来安装JavaScript测试依赖项:

$ npm install

然后运行测试:

$ npm test