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. Чтобы увидеть покрытие кода:
- Запускайте из корневого каталога (не из каталога ).
python -m http.server
js_tests
- Откройте http: // localhost: 8000 / js_tests / tests.html в своем браузере.
Тесты из командной строки ¶
Для запуска тестов из командной строки необходимо установить Node.js.
После установки Node.js
установите тестовые зависимости JavaScript, запустив из корня репозитория Django следующую команду:
$ npm install
... \> npm установить
Затем запустите тесты с помощью:
$ npm test
... \> тест npm