JavaScript ¶
Хотя большая часть ядра Django - это Python, приложения admin
и gis
contrib содержат код JavaScript.
Пожалуйста, следуйте этим стандартам кодирования при написании кода JavaScript для включения в Django.
Стиль кода ¶
- Пожалуйста, соблюдайте стиль отступа, указанный в
.editorconfig
файле. Мы рекомендуем использовать текстовый редактор с поддержкой EditorConfig, чтобы избежать проблем с отступами и пробелами. В большинстве файлов JavaScript для отступа используется 4 пробела, но есть некоторые исключения. - При именовании переменных используйте
camelCase
вместоunderscore_case
. В разных файлах JavaScript иногда используется другой стиль кода. Пожалуйста, постарайтесь соответствовать стилю кода каждого файла. - Используйте линтер кода ESLint, чтобы проверить свой код на наличие ошибок и ошибок стиля. ESLint будет запущен, когда вы запустите тесты JavaScript. Мы также рекомендуем установить плагин ESLint в ваш текстовый редактор.
- По возможности напишите код, который будет работать, даже если структура страницы позже будет изменена с помощью JavaScript. Например, при привязке обработчика кликов используйте
вместо
. Это упрощает проектам расширение поведения Django по умолчанию с помощью JavaScript.
$('body').on('click', selector, func)
$(selector).click(func)
Патчи JavaScript ¶
Система администрирования Django использует фреймворк jQuery для расширения возможностей интерфейса администратора. В сочетании с этим упор делается на производительность административного 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. Чтобы просмотреть покрытие кода:
- Выполнить из корневого каталога (не изнутри
).
python -m http.server
js_tests
- Откройте http: // localhost: 8000 / js_tests / tests.html в своем браузере.
Тестирование из командной строки ¶
Для запуска тестов из командной строки у вас должен быть установлен Node.js.
После установки Node.js
установите тестовые зависимости JavaScript, выполнив следующее из корня вашей проверки Django:
$ npm install
...\> npm install
Затем запустите тесты с помощью:
$ npm test
...\> npm test