JavaScript

Несмотря на то, что большая часть кода Django написана на Python, приложения вносят свой вклад admin и gis содержат код JavaScript.

При написании кода JavaScript, предназначенного для работы с Django, придерживайтесь этих стандартов кодирования.

Стиль кода

  • Пожалуйста, соблюдайте стиль отступа, определенный в файле .editorconfig . Мы рекомендуем использовать текстовый редактор с поддержкой EditorConfig, чтобы избежать проблем с отступами и пространством. В большинстве файлов JavaScript для отступа используется 4 пробела, но есть несколько исключений.
  • При именовании переменных используйте нотацию camelCase вместо séparation_par_soulignement . Иногда в некоторых файлах JavaScript может использоваться другой стиль кода. Пожалуйста, придерживайтесь стиля кода каждого файла.
  • Используйте ESLint Code Checker, чтобы проверить свой код на наличие ошибок или ошибок стиля. ESLint запускается одновременно с тестами JavaScript. Мы также рекомендуем установить плагин ESLint в ваш текстовый редактор.
  • По возможности напишите код, который будет работать, даже если структура страницы позже будет изменена с помощью JavaScript. Например, при регистрации для функции щелчка пишите, а не . Это позволяет легко расширить поведение Django по умолчанию с помощью JavaScript для других проектов.$('body').on('click', sélecteur, fonction) $(sélecteur).click(fonction)

Исправления JavaScript

Система администрирования Django использует платформу jQuery для расширения возможностей интерфейса администратора. В сочетании с этим упор делается на производительность административного JavaScript и минимизирует общий размер административного медиа-файла. В этом отношении наилучшей практикой считается обслуживание сжатых или «минифицированных» версий файлов JavaScript.

С этой целью исправления для файлов JavaScript должны включать как исходный код для будущей разработки (например foo.js ), так и сжатую версию для производственного использования (например foo.min.js ). Любые ссылки на файл в базе кода должны указывать на сжатую версию.

Сжатие JavaScript

Чтобы упростить процесс предоставления оптимизированного кода JavaScript, Django включает удобный скрипт Python, который следует использовать для создания «уменьшенной» версии. Чтобы запустить его:

$ python django/contrib/admin/bin/compress.py
... \> py django \ contrib \ admin \ bin \ compress.py

За кулисами compress.py находится интерфейс для компилятора Google Closure , написанный на Java. Библиотека Closure Compiler не входит в комплект Django, но будет установлена ​​автоматически с помощью npm . Для библиотеки Closure Compiler требуется Java 7 или выше.

Пожалуйста, не забудьте запустить compress.py и включить diff минифицированные скрипты при отправке патчей для Django's JavaScript.

Тесты JavaScript

Тесты Django JavaScript можно запускать в браузере или из командной строки. Тесты находятся в каталоге js_tests на первом уровне.

Написание тестов

В тестах Django JavaScript используется QUnit . Вот пример тестового модуля:

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

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

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

Информацию о типах утверждений, поддерживаемых QUnit, см . В документации QUnit .

Запуск тестов

Тесты JavaScript можно запускать из веб-браузера или из командной строки.

Тестирование из веб-браузера

Чтобы запустить тесты из веб-браузера, откройте js_tests/tests.html в своем браузере.

Чтобы измерить покрытие кода при запуске тестов, вы должны просмотреть этот файл через HTTP. Чтобы увидеть покрытие кода:

Тесты из командной строки

Для запуска тестов из командной строки необходимо установить Node.js.

После установки Node.js установите тестовые зависимости JavaScript, запустив из корня репозитория Django следующую команду:

$ npm install
... \> npm установить

Затем запустите тесты с помощью:

$ npm test
... \> тест npm

Copyright ©2020 All rights reserved