Введите имя файла с клавиатуры, если расширение имени файла htm html python
Обновлено: 21.11.2024
С момента своего выпуска в декабре 1995 года (после Java, выпущенного 23 мая 1995 года) JavaScript претерпел множество изменений. JavaScript начинался как язык программирования на стороне клиента (который работает внутри веб-браузера) для добавления интерактивного содержимого на веб-страницы. Он стал более надежным с DHTML и AJAX. С Node.js (в 2009 г.) JavaScript можно использовать для программирования на стороне сервера и создания полнофункциональных веб-приложений. В 2015 году в ECMAScript 6 (ES6) представлено серьезное обновление языка.
В этой статье основное внимание уделяется JavaScript до Node.js и ECMAScript 6, т. е. JavaScript как клиентскому языку программирования для предоставления интерактивного содержимого веб-страницам. Я предоставлю обновления в других статьях.
Введение
Он начинался как клиентский язык программирования, запускаемый внутри веб-браузера
JavaScript – это наиболее широко используемый клиентский язык программирования, который позволяет наполнить ваш HTML интерактивностью, анимацией и динамическими визуальными эффектами для улучшения пользовательского интерфейса и взаимодействия с пользователем (UI/UX). Это:
- небольшой, легкий, объектно-ориентированный, кроссплатформенный язык сценариев специального назначения, предназначенный для запуска в хост-среде (обычно в веб-браузере).
- язык сценариев на стороне клиента для обогащения пользовательских веб-интерфейсов и создания динамических веб-страниц (например, проверка ввода формы и немедленный ответ на действия пользователя).
- движок, поддерживающий AJAX (асинхронный JavaScript и XML), который вызывает новый интерес к JavaScript.
JavaScript работает вместе с HTML/CSS. HTML предоставляет содержимое (или структуру); CSS определяет представление; а JavaScript программирует поведение. Вместе они обогащают пользовательский интерфейс/UX веб-пользователей.
JavaScript теперь везде с Node.js
JavaScript изначально создавался как клиентский язык веб-программирования, работающий в веб-браузере, для расширения возможностей HTML. Он вышел за рамки клиентского программирования.
С появлением Node.js (кроссплатформенной среды выполнения JavaScript с открытым исходным кодом) вы можете запускать JavaScript автономно или внутри сервера (вместо браузера). Это позволяет использовать один язык как для серверного, так и для клиентского программирования.
История и версии
JavaScript, первоначально называвшийся LiveScript, был создан Бренданом Эйхом из Netscape в 1995 году. Вскоре после этого Microsoft выпустила собственную версию JavaScript под названием JScript. Впоследствии Netscape представила его в ECMA (ранее "Европейская ассоциация производителей компьютеров", теперь "Ecma International — Европейская ассоциация стандартизации информационных и коммуникационных систем") для стандартизации вместе с JScript от Microsoft.
Спецификация ECMA называется "Спецификация языка ECMA-262 ECMAScript" @ http://www.ecma-international.org/publications/standards/Ecma-262.htm (также утверждена как "ISO/IEC 16262"):
- ECMA-262, версия 1 (июнь 1997 г.)
- ECMA-262, версия 2 (август 1998 г.)
- ECMA-262, версия 3 (декабрь 1999 г.)
- ECMA-262, версия 4 — отказ из-за политических разногласий. В 2007 году TC-39 (комитет, ответственный за ECMAScript) представил проект спецификации для ECMAScript 4, которая была масштабной и содержала много нового синтаксиса и функций. Но группа разработчиков из Yahoo, Google и Microsoft посчитала, что это уже слишком, и создала альтернативное предложение под названием ECMAScript 3.1. ECMAScript 4 так и не был доработан.
- ECMA-262 версии 5 и 5.1 (июнь 2011 г.): ECMAScript 3.1 в конечном итоге был стандартизирован как ECMAScript 5.
- ECMA-262 2015 – более известный как ECMAScript 6 или ES6.
- ECMA-262 2016 (версия 7). Начиная с ES6, стандарты ECMAScript публикуются ежегодно.
- ECMA-262 2017 (версия 8)
- ECMA-262 2018 (версия 9)
- 1.0 (1996 г.)
- 1.3 (1998 г.): соответствие стандарту ECMA-262 версии 1
- 1.5 (1999 г.): соответствие стандарту ECMA-262 версии 3
- 1.6, 1.7:
- 1.8 (2008 г.), последняя версия 1.8.5 (2010 г.): соответствие стандарту ECMA-262 версии 5
- .
JavaScript и Java
Java — это полноценный универсальный язык программирования. Он был создан Джеймсом Гослингом из Sun Microsystems (теперь часть Oracle) и выпущен в августе 1995 года.
JavaScript был создан Бренданом Эйхом из Netscape в том же 1995 году. Первоначально называвшийся LiveScript, это был небольшой и легкий язык специального назначения для написания клиентской программы, работающей внутри браузера, для создания активных пользовательский интерфейс и создавать динамические веб-страницы. Он был переименован в JavaScript в результате злополучного маркетингового решения, призванного извлечь выгоду из популярности языка Java, когда Netscape выпустила свой Navigator 2 в 1996 году.
Java и JavaScript — совершенно разные языки для разных целей программирования. Однако в первые дни были предприняты некоторые усилия по внедрению синтаксиса и соглашений Java в JavaScript, так что JavaScript кажется подмножеством Java. На самом деле у них очень мало общего.
Что НЕ МОЖЕТ делать клиентский JavaScript?
Помните, что JavaScript — это клиентская программа, которую вы загружаете с сервера и запускаете в браузере вашего (клиентского) компьютера. Что помешает кому-то написать JavaScript, который стирает ваш жесткий диск или запускает атаку типа «отказ в обслуживании» на другой сервер? В результате в целях безопасности
- Он не может прочитать файл с клиентского компьютера.
- Он может подключаться только к тому серверу, с которого пришел. Он может читать файл с сервера, с которого он пришел. Он не может записать файл на сервер.
- Он не может подключиться к другому серверу.
- Он не может закрыть окно, которое не открыто.
JQuery
jQuery – это популярная кроссбраузерная библиотека JavaScript. jQuery — это JavaScript (но с собственным синтаксисом расширений), поэтому вам нужно понимать JavaScript. Я предлагаю вам прочитать синтаксис JavaScript (и обратить особое внимание на объекты), а затем переключиться на jQuery для своей работы. Прочтите "Основы jQuery".
JavaScript на примерах
Я предполагаю, что вы знаете HTML и CSS (в противном случае читайте мои статьи по HTML/CSS). Я также предполагаю, что вы понимаете некоторые основы программирования, такие как переменные, конструкции if-else и for-loop.
JavaScript запускается внутри браузера. Есть стандарты на JavaScript. Но большая пятерка (Chrome, Firefox, IE, Safari и Opera), в частности IE, не придерживается строго всех стандартов. Кроме того, они создают свои собственные расширения. Следовательно, поведение JavaScript может быть разным в разных браузерах. Возможно, вам придется протестировать свои сценарии JavaScript в нескольких браузерах. [Вот где jQuery пригодится, так как jQuery обеспечивает кросс-браузерную поддержку.]
Пример 1: Функции alert() и document.write()
Давайте напишем наш первый JavaScript для вывода сообщения "Hello, world".
Начните с нового файла и введите следующие коды. Не вводите номера строк, которые используются для облегчения объяснения. Обратите внимание, что:
- JavaScript чувствителен к регистру. Роза НЕ является РОЗОЙ и НЕ является Розой .
- "Лишние" пробелы (пробелы, символы табуляции и новые строки) игнорируются. То есть несколько пробелов рассматриваются как один пробел. Вы можете свободно использовать их, чтобы облегчить чтение вашей программы.
Сохраните файл как "JSExAlertWrite.html" (или любое другое имя файла, которое вы предпочитаете, с расширением ".html" или ".htm"). Запустите скрипт, загрузив HTML-файл в браузер с поддержкой JavaScript (например, один из БОЛЬШОЙ ПЯТЕРКИ — Chrome, Firefox, Internet Explorer, Safari или Opera).
Как это работает?
- JavaScript — это программный код, встроенный в HTML-документ. Коды содержатся между парой тегов следующим образом: ПРИМЕЧАНИЕ. В HTML4/XHTML вам необходимо включить в элемент атрибут type="text/javascript". Строки 7–9 и строки 13–17 представляют собой два фрагмента кода JavaScript, размещенные в разделах HEAD и BODY соответственно.
- Операции JavaScript заканчиваются точкой с запятой ';' .
- Функция alert(aString) (строка 8) открывает диалоговое окно, отображающее sString и кнопку OK. Строки заключаются в пару двойных кавычек или одинарных кавычек.
- Текущая веб-страница представлена так называемым объектом документа в JavaScript. Свойство document.lastModified (строка 16) хранит дату последнего изменения текущего документа. Функция document.write(aString) (строки 14–16) может использоваться для записи указанной aString в текущий документ как часть текущего HTML-документа.< /li>
- Операция '+' (строка 16) объединяет фрагменты строк (аналогично языку Java).
- В результате использования document.write() раздел BODY этого документа содержит:
- Alert() и document.write() — это одни из часто используемых встроенных функций, предоставляемых в JavaScript.
ПОПРОБУЙТЕ: распечатайте название документа и URL-адрес. (Советы: используйте свойства document.title и document.location.)
Не зацикливайтесь на кеше — нажмите Control-Refresh (или Control-F5)
Если вы измените коды и перезагрузите веб-страницу, новые коды могут не выполниться, поскольку браузер кэширует ранее загруженную версию. Вы можете использовать Control-F5 (Control-Refresh), чтобы попросить браузер удалить кеш и загрузить новую страницу.
Пример 2: Переменные и функции prompt() , confirm()
Этот скрипт запрашивает у пользователя его/ее имя, подтверждает имя и печатает приветственное сообщение.
Существует три типа всплывающих диалоговых окон для взаимодействия с пользователями:
- Функция alert(aString) помещает aString во всплывающее окно с кнопкой OK. Чтобы продолжить, пользователю необходимо нажать кнопку "ОК".
- Функция prompt(promptingString, defaultInputString?) выводит всплывающее окно ввода с promptingString с кнопками OK и Cancel. . Он возвращает ввод, введенный пользователем, в виде строки; или специальное значение, называемое null, если пользователь нажимает кнопку «Отмена». Необязательный параметр defaultString указывает начальную отображаемую строку. В этой статье я буду указывать необязательные параметры функции с завершающим знаком '?' для компактности.
- Функция подтверждения(aString) помещает aString во всплывающее окно с кнопками OK и Cancel. Возвращает true, если пользователь нажимает кнопку OK; или false в противном случае.
Как это работает?
- В строке 8 объявляется переменная с именем username с помощью ключевого слова var . Переменная – это именованное место хранения, в котором хранится значение. После объявления переменной вы можете присвоить (и переназначить) значение этой переменной с помощью оператора присваивания '=' (строка 9).
- Строка 9 вызывает функцию prompt(promptingString, defaultString?) для вывода диалогового окна и чтения строки, введенной пользователем. Прочитанная строка присваивается переменной username. Функция prompt() похожа на alert() , но принимает ввод пользователя.
- В строке 10 функция подтверждения(aString) выводит сообщение и возвращает значение true или false в зависимости от того, нажимает ли пользователь кнопку "ОК" или "Отмена".
- Если результат истинен, в строке 11 выводится "Здравствуйте, имя пользователя!" . В противном случае строка 13 печатает «Привет, мир!» .
ПОПРОБУЙТЕ: вместо того, чтобы печатать приветственное сообщение с помощью document.write() , сделайте это с помощью alert() .
Пример 3: Объект даты
Следующий скрипт создает объект Date, представляющий текущую дату и время, и печатает текущее время.
Как это работает?
- В строке 8 объявляется переменная, вызываемая now . Он также создает объект Date (с помощью оператора new), который содержит текущую отметку даты и времени, и назначает его для now .
- " // " начинает комментарий в конце строки (строки 8 и 9). Комментарии игнорируются движком JavaScript, но они важны для объяснения вашего кода другим (и самому себе через три дня).
- В строке 9 объявляется переменная с именем hrs. Он также вызывает функцию getHours() для объекта now в форме now.getHours(), чтобы получить часовую часть объекта now и присвоить ее переменной hrs. Строки 9 и 10 аналогичным образом обрабатывают минуты и секунды.
- Строки с 12 по 14 используют document.writeln() для записи в текущий документ. writeln() (запись-строка) записывает новую строку ( \n ) после данной строки. Обратите внимание, что браузер игнорирует лишние пробелы (переводы строк, пробелы, табуляции) в HTML-документе; вам нужно написать
- Измените приведенный выше сценарий, чтобы он печатал текущую дату, месяц, год и день недели. (Советы: используйте функции getDate() , getMonth() , getFullYear() и getDay() объекта Date. getDate() возвращает 1–31. getMonth() возвращает от 0 до 11 для января до Декабрь. getFullYear() возвращает 4-значный год. getDay() возвращает от 0 до 6 с воскресенья по субботу).
- Используйте условный оператор, чтобы напечатать день недели в слове (например, 0 для воскресенья, 1 для понедельника и т. д.). (Советы: используйте конструкцию if-elseif-elseif. else, как показано ниже.)
Пример 4: Циклы
Следующий скрипт запрашивает у пользователя множитель и выводит число, кратное от 1 до 100, с помощью цикла for.
Как это работает?
- В строке 11 у пользователя запрашивается число, которое присваивается переменной multiplier .
- Строки 12–14 содержат цикл for. цикл for имеет следующий синтаксис:
Цикл for состоит из четырех частей. Три из них, инициализация, тест и постобработка, заключены в квадратные скобки () и разделены двумя точками с запятой. тело содержит повторяющуюся задачу, которую необходимо выполнить. Сначала выполняется оператор initialization. Затем оценивается тест. Если test возвращает true, выполняется body; за которым следует оператор постобработки. test снова оценивается, и процесс повторяется до тех пор, пока test не вернет false. Когда test оказывается ложным, цикл for завершается, и выполнение программы продолжается до следующего оператора после цикла for. Следующая блок-схема иллюстрирует процесс цикла for:
В этом примере переменная number инициализируется значением 1. Если число меньше или равно 100, выполняется тело цикла, за которым следует оператор постобработки, увеличивающий значение числа на 1. цикл повторяется до тех пор, пока значение числа НЕ будет меньше или равно 100 (т. е. больше 100).
- Измените приведенный выше сценарий, чтобы запрашивать у пользователя множитель, а также количество множителей, которые необходимо напечатать (в двух операторах prompt()).
- Измените приведенный выше сценарий, чтобы печатать только нечетные кратные числа. (Совет: оператор по модулю "%" можно использовать для вычисления остатка, например, x % 2 вычисляет остаток от деления x на 2, что дает либо 0, либо 1.)
Пример 5. Пользовательские функции и обработчик событий onclick
Помимо встроенных функций JavaScript, таких как alert() , prompt() , write() и writeln() , вы можете определить свои собственные функции. У функции есть имя и тело, состоящее из набора операторов JavaScript, которые в совокупности выполняют определенную задачу. Он может принимать от вызывающего объекта ноль или более аргументов и возвращать вызывающему объекту ноль или одно значение.
Как это работает?
ПОПРОБУЙТЕ: добавьте еще одну кнопку, которая откроет " JSExVar.html ".
Пример 6. Дополнительные обработчики событий: onload , onmouseover и onmouseout
JavaScript можно использовать для обработки многих типов событий в ответ на действие пользователя или браузера. Например,
- onload : срабатывает после того, как браузер загрузил страницу.
- onmouseover и onmouseout : срабатывает, когда пользователь наводит указатель мыши на элемент HTML или от него.
Разбор программы
- В строке 8 определяется переменная msgLoad, которая содержит строки, отображаемые в обработчиках событий onload.
- В открывающем теге (строка 12) мы определяем обработчик события загрузки для события загрузки. Он вызывает alert() с сообщением, определенным ранее.
- В строках 13 и 14 определяются обработчики событий onmouseover и onmouseout для элемента HTML.
Пример 7. Разделение HTML, CSS и JavaScript
Предыдущий пример работает нормально. Вы найдете много таких примеров в учебниках, особенно в старых учебниках. Однако у него есть большая проблема. Все содержимое HTML, стили представления CSS и коды программирования JavaScript размещены в одном файле. Для маленькой игрушечной программы проблема не серьезная. Но когда ваша программа разрастется и если HTML, CSS и JavaScript будут написаны разными людьми, у вас возникнут серьезные проблемы с поддержкой программы. Помните, что HTML используется для содержимого, CSS — для представления, а JavaScript — для поведения.
Давайте перепишем пример, чтобы поместить HTML, CSS и JavaScript в три разных файла.
Как это работает?
- Размещение кода скрипта внутри HTML-страницы не является хорошей практикой разработки программного обеспечения. Вместо этого в настоящее время предпочтительным подходом является размещение скриптов, а также стилей CSS во внешних файлах, которые затем можно единообразно применить ко всем страницам вашего веб-сайта.
- Начнем с файла HTML. Теперь файл HTML содержит только содержимое, без стиля представления и логики программирования.
Таблица стилей CSS хранится во внешнем файле, ссылка на который приведена выше.- тег.
Примечание. В HTML4/XHTML1.0 необходимо включить атрибут type="text/css" в - открывающий тег.
Кроме того, программный код JavaScript хранится во внешнем файле, ссылка на который приведена выше, необходима, хотя контента нет.
Примечание. В HTML4/XHTML1.0 необходимо включать атрибут type="text/javascript" в запуски во время загрузки страницы.- Некоторые сценарии JavaScript, называемые обработчиками событий, запускаются в результате действия пользователя или браузера (или события). Например, нажатие кнопки ( onclick ) или загрузка страницы ( onload ).
Поэтому есть два места для размещения вашего JavaScript:
- между тегами контейнера; и
- внутри тегов HTML в качестве обработчиков событий (таких как onclick , onmouseover , onload ), например, onclick .
Элемент содержит операторы программирования JavaScript. Например,
В HTML4/XHTML1.0 необходимо включить атрибут type="text/javascript" в
DigitalOcean объединяет усилия с CSS-Tricks! Специальное приветственное предложение: получите бесплатный кредит в размере 100 долларов США.
Интересный вопрос от Энди:
Серьезный вопрос. Почему мы используем .html вместо .htm? / @adactio @css
— Энди Кларк (@Malarkey), 12 декабря 2019 г.
Наиболее вероятный ответ из треда: DOS долгое время была массивной операционной системой для ПК, и в ней было ограничение в три символа в расширениях файлов.
Интересно, что первая книга по HTML посвящена именно этому:
Я думал о серверном программном обеспечении.Я знаю, что веб-серверы автоматически делают разные вещи с разными типами файлов. В ходе тестирования на моем собственном сервере (настроенном для работы с сайтом WordPress) я поместил в корень несколько файлов, содержащих одно и то же содержимое:
- file.text = файл отображается как обычный текст в браузере (Content-Type: text/plain)
- file.html = файл отображается как HTML в браузере (тип содержимого: text/html)
- file.htm = файл отображается как HTML в браузере (тип содержимого: text/html)
- file.fart = файл загружается браузером (Content-Type: application/octet-stream)
Вы можете написать код для обслуживания файлов с любыми типами контента, которые вы хотите, но вместо этого расширения файлов имеют значение, поскольку они влияют на то, как веб-серверы по умолчанию выбирают обслуживание заголовков типов файлов.
Комментарии
Наиболее вероятный ответ из треда: DOS долгое время была массивной операционной системой для ПК, и в ней было ограничение на три символа в расширениях файлов.
Ответ на вопрос, почему мы используем четырехбуквенное расширение файла, не может быть таким:
«Раньше мы использовали ОС с трехбуквенными расширениями файлов»
Хотя это и не является явным, мне кажется, что ответ указывает, почему мы косвенно используем .html, объясняя единственную причину, по которой существует альтернатива .html.
Когда я впервые начал изучать html в 90-х, общепринятое мнение гласило, что файлы .htm понимаются серверами Windows, а .html используются на *nix. Позднее Microsoft ввела .asp, затем .aspx, а остальное, как говорится, уже история.
HTML и HTM — это один и тот же формат файлов. Как написано в статье, это должен быть HTML, но мы использовали HTM для DOS из-за ограничения ОС на три символа.
Это не отвечает на вопрос в заголовке (?)
Неважно, я не читал скриншот в твиттере
Если вы добавите .fart на свой веб-сервер как text/html, он также запустится.
Я тоже всегда задавался этим вопросом. Спасибо за поиск ответа!
Если, как вы сказали, вы не работаете в DOS, они всегда были взаимозаменяемы. И веб-серверы могут быть настроены для обработки любого расширения как любого типа MINE. Те, что вы перечислили, просто стандартные. При желании вы можете легко использовать HTML как двоичные файлы.
Я имел в виду MIME-тип :)
Знаете ли вы, что НАСТОЯЩИЙ Microsoft Office сохраняет подпись с расширением .htm как устаревший код? Я понял более 10 лет назад, и с тех пор так и держится
Вы можете использовать любое расширение файла для своего веб-объявления, если вы настроите тип MIME для этого расширения. Если бы вы хотели .fart, вы могли бы это сделать.
Ранние веб-серверы работали почти исключительно на файловых системах Unix и мало учитывали файловые системы PC/DOS, которые поддерживали только трехсимвольные расширения.
Для большинства практических целей даже имена файлов были ограничены 8 символами. В то время в Windows была какая-то поддержка длинных имен файлов, но большинство FTP-клиентов не поддерживали это и использовали 8-символьный псевдоним имени файла DOS при передаче файлов туда и обратно. Это был беспорядок, и попытка работать между двумя системами была кошмаром.
Интернет предшествовал системам Dos и Mac. Все интернет-серверы были некоторыми вариантами систем Unix, в которых имена расширений, разделенные точками, были просто частью имени файла, поскольку это касалось файловой системы Unix, но некоторые приложения и службы (т.е. системные приложения) были разработаны с учетом определенных суффиксов с точками в имя (т.е. расширения). Стандартом для веб-страниц был .html, но ранние системы Windows не могли участвовать в этом новом мире из-за трехсимвольного расширения, пока .htm не был разрешен в качестве альтернативы. У Mac была другая проблема, поскольку они не требовали суффиксов расширения в имени, и пользователи могли легко переименовать все имя файла. Таким образом, пользователи Mac должны были явно вводить часть расширения имени при создании файлов в Интернете. Наконец, имя имеет значение, а также точный регистр каждого символа в нем, потому что гиперссылка на имя файла в Интернете чувствительна как к регистру, так и к имени, поэтому .html, .htm и .HTM все разные, если резидентный на сервере Unix (или Linux) (и даже если он сейчас находится на сервере Windows, что нечувствительно к регистру, он может когда-нибудь быть перенесен на сервер Unix, и связи прервутся). Веб-браузер и сам веб-сервер «могут» быть спроектированы таким образом, чтобы пробовать различные альтернативы имени файла, чтобы создать видимость наличия правильного имени файла, но я не знаю, делают ли они это — возможно, веб-сервер на базе Windows попробуйте так, но это просто приведет к небрежной практике с непоследовательным именованием, которое рухнет как карточный домик в будущем, когда ваш сайт будет перенесен на сервер на основе Unix.
Да, может. Это объясняет, в первую очередь, происхождение .htm, который был компромиссом для конкретной ОС. Расширение должно было быть .html, чтобы отразить аббревиатуру HTML.
Если бы DOS позволяла использовать более 3 символов в расширениях файлов, то альтернативного расширения .htm не существовало бы. И его существование — главная причина, по которой люди спрашивают, почему мы используем .html вместо .htm. А если причина не в этом, то можно также спросить, а вместо .html почему не «х»? .html кажется наиболее описательным. .htm и другие альтернативы могут быть короче или обладать некоторыми другими качествами, но необходимо сделать выбор, и .html кажется наиболее подходящим и естественным.
Причина, по которой мы редко используем .htm и вместо этого используем .html, заключается в том, что Интернет в основном работает на серверах, которые допускают 4-буквенные расширения файлов, а html означает язык гипертекстовой разметки. Единственная причина, по которой .htm вообще существует, заключается в том, что ранние системы DOS и Windows не могли обрабатывать файлы с полным расширением .html. Поэтому вместо этого он был сокращен как .htm. Таким образом, ответ таков: .html — это исходный и предпочтительный способ, тогда как .htm — это вариант.
В 90-е годы, когда Commodore все еще занимался бизнесом, продавая «компьютер, опередивший свое время» — легендарную Amiga, — у него была встроенная поддержка типов данных, из-за чего вообще не требовалось давать файлам распространенных типов расширения — ОС просто знал, к какому типу относится файл, и создавал предварительный просмотр в Workbench (например, в Finder).
Я думаю, что Mac и Windows даже в 2020 году полагаются на расширения имен файлов — было бы интересно получить окончательный ответ.
Разница заключалась в том, указывался ли тип файла как часть имени файла или сохранялся как отдельное поле в файловой системе. По сути, это два разных способа сделать одно и то же. Использовать его как часть имени файла, вероятно, проще, поскольку вы можете изменить тип файла, просто изменив его имя (например, изменив txt на html).
ArcGIS Notebooks построены на основе Jupyter Notebook, веб-приложения с открытым исходным кодом, которое позволяет создавать и публиковать документы, содержащие живой код Python, визуализации и описательный текст. С помощью ArcGIS Notebooks, интегрированного в ArcGIS Pro, вы можете выполнять анализ и немедленно просматривать результаты в географическом контексте, взаимодействовать с новыми данными, документировать и автоматизировать свой рабочий процесс, а также сохранять его для последующего использования или делиться им. Использование ArcGIS Notebooks включает очистку и преобразование данных, численное моделирование, статистическое моделирование, машинное обучение, административные задачи и многое другое.
Все функции Python в ArcGIS Pro доступны через ArcGIS Notebooks, включая основные функции Python, стандартную библиотеку Python, ArcPy, ArcGIS API for Python и многочисленные сторонние библиотеки, включенные в ArcGIS Pro, такие как NumPy и pandas. ArcGIS Pro можно расширить за счет библиотек с открытым исходным кодом с помощью ArcGIS Pro Python Package Manager.
Несмотря на то, что Jupyter Notebook с открытым исходным кодом запускается локально в приложении ArcGIS Pro, интегрированный интерфейс Esri Jupyter Notebook также доступен на портале ArcGIS Enterprise с ArcGIS Notebook Server.
Если вам нужен интерактивный терминал Python для тестирования или запуска коротких фрагментов кода без расширенных возможностей блокнота, см. окно Python.
Как использовать блокноты ArcGIS в ArcGIS Pro
Чтобы создать блокнот, щелкните вкладку "Вставка" на ленте и нажмите кнопку "Новый блокнот" . Либо откройте панель "Каталог", перейдите в каталог проекта, щелкните правой кнопкой мыши папку и выберите "Создать" > "Блокнот" .
ArcGIS Notebooks, которые были добавлены в проект, перечислены в папке Notebooks на панели Каталог. Блокноты, созданные с помощью ArcGIS Pro, автоматически добавляются в ваш проект. Чтобы добавить существующий блокнот в проект, щелкните правой кнопкой мыши папку Блокноты и выберите Добавить блокнот или щелкните стрелку раскрывающегося списка рядом с кнопкой Добавить блокнот на ленте Вставка и выберите Добавить блокнот .
Чтобы открыть существующую записную книжку в проекте, перейдите к файлу записной книжки на панели Каталог и либо дважды щелкните записную книжку, либо щелкните записную книжку правой кнопкой мыши и выберите Открыть записную книжку .
Блокнот открывается в пользовательском интерфейсе, аналогичном стандартному блокноту Jupyter, с кнопками Создать , Сохранить и кнопкой Прервать ядро, расположенными на вкладке Блокнот ArcGIS Pro. Лента записной книжки появляется автоматически, когда открыто представление записной книжки. Дополнительные сведения о взаимодействии с Jupyter Notebook см. в документации по пользовательскому интерфейсу Jupyter Notebook.
Чтобы экспортировать блокнот, используйте раскрывающееся меню «Экспорт», чтобы экспортировать блокнот в файл Python ( .py ) или HTML ( .html ).
Дополнительная помощь
Меню справки в представлении Notebook содержит обзор пользовательского интерфейса Jupyter Notebook, сочетаний клавиш, Markdown и других важных тем.
Функция завершения табуляции предоставляет контекстную справку в зависимости от местоположения указателя.Методы и свойства можно просмотреть, нажав Tab после точки после имени объекта или библиотеки. Например, введите в ячейку arcpy.analysis и нажмите клавишу Tab, чтобы отобразить список возможных методов, доступных в модуле анализа. Когда список отобразится, вы можете отфильтровать его, введя соответствующие слова. После выбора подходящего метода из списка нажмите Enter, чтобы использовать его.
Инструменты, модули, функции, классы и ключевые слова Python хранят документацию, в которой содержится информация об их использовании. Активируйте документацию по указателю, нажав Shift+Tab . Ниже представлена документация, отображаемая для инструмента «Буфер»:
Кроме того, к той же документации можно получить доступ с помощью встроенной функции справки Python. Ниже представлена справочная документация для arcpy.analysis.Buffer :
Интеграция с ArcGIS Pro
Помимо окна Python, блокноты ArcGIS Notebooks в ArcGIS Pro предоставляют доступ к содержимому вашей карты, что позволяет использовать интерактивные рабочие процессы, такие как следующие:
- Доступ к слоям и другому содержимому вашей карты можно получить в блокноте по имени или по пути к данным.
- Вывод инструментов геообработки по умолчанию добавляется на активную карту.
- Инструменты геообработки учитывают выбор.
- Глобальные настройки среды геообработки учитываются и могут быть переопределены настройками среды.
- Рабочие процессы геообработки могут выполняться во время текущего сеанса редактирования. Если инструмент геообработки напрямую изменяет объект, редактируемый в сеансе редактирования (он не сохраняет результат геообработки как другой класс объектов), вы можете сохранить или отменить изменения на ленте редактирования.
- Когда инструмент геообработки запускается из Блокнота ArcGIS, журнал результатов инструмента появляется в истории геообработки.
Внимание!
ArcGIS Pro предназначен для запуска одного экземпляра Python. Этот экземпляр Python используется всеми открытыми записными книжками в одном экземпляре ArcGIS Pro. Если разные записные книжки используют одно и то же имя переменной, могут возникнуть конфликты имен переменных. Чтобы избежать потенциальных конфликтов имен переменных, рассмотрите следующие варианты:
- Открывайте блокноты по одному.
- Запускайте блокноты в отдельных экземплярах ArcGIS Pro.
- Используйте уникальные имена переменных в одновременно работающих блокнотах.
- Выполните волшебную команду %reset -f, чтобы удалить все переменные в блокноте.
Внимание!
ArcGIS Notebooks, размещенные в ArcGIS Enterprise, не поддерживаются непосредственно в ArcGIS Pro. Чтобы использовать размещенный блокнот в ArcGIS Pro, загрузите и используйте файл .ipynb локально.
При использовании встроенной магической команды %matplotlib для отображения графиков необходимо рисовать график с помощью функции show() из matplotlib.pyplot .
Блокноты ArcGIS в ArcGIS Pro поддерживают только Python; никакие другие языковые ядра (например, R ) не поддерживаются.
API ArcGIS для Python
В ArcGIS API for Python объект ГИС используется для представления ГИС, с которой вы работаете, например, ArcGIS Online или экземпляр ArcGIS Enterprise. Ваша ГИС может поддерживать ряд схем аутентификации; см. Работа с различными схемами проверки подлинности, чтобы узнать, как выполнять проверку подлинности сценариев и блокнотов для разных схем.
Например, чтобы подключиться к ArcGIS Online в качестве анонимного пользователя, укажите gis = GIS() . Чтобы подключиться к вашему активному порталу в ArcGIS Pro без ввода учетных данных, укажите gis = GIS("pro") .
Этот документ представляет собой руководство пользователя по изучению параметров и настроек, предлагаемых GitLab Pages.
- Прочитайте введение в GitLab Pages.
- Узнайте, как начать работу со Страницами.
- Узнайте, как включить GitLab Pages в своем экземпляре GitLab, в документации администратора.
Требования к страницам GitLab
- Домен экземпляра: доменное имя, используемое для страниц GitLab (спросите своего администратора).
- GitLab CI/CD: файл .gitlab-ci.yml с конкретным заданием с именем pages в корневом каталоге вашего репозитория.
- Каталог с именем public в репозитории вашего сайта, содержащий материалы для публикации.
- GitLab Runner включен для проекта.
Примеры проектов
Посетите группу GitLab Pages, чтобы ознакомиться с полным списком примеров проектов. Вклад приветствуется.
Пользовательские коды ошибок страниц
Вы можете предоставить свои собственные страницы ошибок 403 и 404, создав файлы 403.html и 404.html соответственно в корневом каталоге каталога public/, которые включены в артефакты. Обычно это корневой каталог вашего проекта, но он может отличаться в зависимости от конфигурации вашего статического генератора.
- Если вы используете страницы проекта (обслуживаемые под /projectname/ ) и пытаетесь получить доступ к /projectname/non/existing_file , GitLab Pages пытается сначала обслужить /projectname/404.html , а затем /404.html .
- Если вы используете страницы пользователей/групп (обслуживаемые в / ) и пытаетесь получить доступ к /non/existing_file, страницы GitLab пытаются обслуживать /404.html .
- Если вы используете личный домен и пытаетесь получить доступ к /non/existing_file , GitLab Pages пытается обслуживать только /404.html .
Перенаправления на страницах GitLab
Вы можете настроить переадресацию для своего сайта с помощью файла _redirects. Чтобы узнать больше, прочтите документацию по переадресации.
Контроль доступа к страницам GitLab
Чтобы ограничить доступ к вашему сайту, включите GitLab Pages Access Control.
Отмена публикации ваших страниц
Если вам когда-нибудь понадобится очистить содержимое Страниц, вы можете сделать это, перейдя в настройки своего проекта с помощью значка шестеренки в правом верхнем углу, а затем перейдя на Страницы. Нажмите кнопку «Удалить страницы», чтобы удалить свой веб-сайт Pages.
Субдомены субдоменов
Страницы и подгруппы GitLab
Вы должны разместить свой веб-сайт GitLab Pages в проекте. Этот проект может принадлежать группе или подгруппе. Для групповых веб-сайтов группа должна находиться на верхнем уровне, а не в подгруппе.
Особые параметры конфигурации для Страниц
Узнайте, как настроить GitLab CI/CD для конкретных случаев использования.
.gitlab-ci.yml для простых HTML-сайтов
Предположим, что ваш репозиторий содержит следующие файлы:
Затем приведенный ниже пример .gitlab-ci.yml просто перемещает все файлы из корневого каталога проекта в каталог public/. Обходной путь .public заключается в том, что cp также не копирует public/ в себя в бесконечном цикле:
.gitlab-ci.yml для генератора статических сайтов
Пошаговое руководство см. в этом документе.
.gitlab-ci.yml для репозитория, где также есть актуальный код
Помните, что страницы GitLab по умолчанию не зависят от веток/тегов, и их развертывание зависит исключительно от того, что вы указываете в .gitlab-ci.yml . Вы можете ограничить задание страниц единственным параметром всякий раз, когда новая фиксация отправляется в ветку, используемую специально для ваших страниц.
Таким образом, вы можете разместить код своего проекта в основной ветке и использовать ветку-сироту (назовем ее pages ) для размещения своего сайта статического генератора.
Вы можете создать новую пустую ветку следующим образом:
Первая фиксация, сделанная в этой новой ветке, не имеет родителей и является корнем новой истории, полностью отделенной от всех других ветвей и коммитов. Поместите исходные файлы вашего статического генератора в ветку pages.
Ниже приведена копия файла .gitlab-ci.yml, где самая важная строка является последней, указывающей на выполнение всего в ветке pages:
См. пример, в котором есть разные файлы в основной ветке, а исходные файлы для Jekyll находятся в ветке pages, которая также включает .gitlab-ci.yml .
Обслуживание сжатых ресурсов
Большинство современных браузеров поддерживают загрузку файлов в сжатом формате. Это ускоряет загрузку за счет уменьшения размера файлов.
Перед показом несжатого файла Pages проверяет, существует ли такой же файл с расширением .br или .gz. Если это так, и браузер поддерживает получение сжатых файлов, он использует эту версию вместо несжатой.
Этого можно добиться, включив команду script:, подобную этой, в задание страниц .gitlab-ci.yml:
Благодаря предварительному сжатию файлов и включению обеих версий в артефакт Страницы могут обслуживать запросы как на сжатый, так и на несжатый контент без необходимости сжатия файлов по требованию.
Разрешение неоднозначных URL
GitLab Pages делает предположения о том, какие файлы следует обслуживать, при получении запроса на URL-адрес, который не включает расширение.
Рассмотрите сайт Pages, развернутый со следующими файлами:
Обратите внимание, что если файл public/data/index.html существует, он имеет приоритет над файлом public/data.html как для URL-путей /data, так и для URL-адресов /data/.
Часто задаваемые вопросы
Могу ли я скачать созданные мной страницы?
Конечно. Все, что вам нужно сделать, это скачать архив артефактов со страницы вакансий.
Могу ли я использовать GitLab Pages, если мой проект частный?
Да. GitLab Pages неважно, какой уровень видимости вы установили для своего проекта: закрытый, внутренний или общедоступный.
Могу ли я создать личный или групповой веб-сайт
Нужно ли мне создавать веб-сайт пользователя/группы перед созданием веб-сайта проекта?
Известные проблемы
Список известных проблем можно найти в общедоступном трекере ошибок GitLab.
Устранение неполадок
Ошибка 404 при доступе к URL-адресу сайта GitLab Pages
Содержимое общедоступного каталога можно проверить, просмотрев артефакты из последнего конвейера.
К файлам, перечисленным в общедоступном каталоге, можно получить доступ через URL-адрес страниц для проекта.
Ошибка 404 также может быть связана с неправильными разрешениями. Если включен контроль доступа к страницам и пользователь переходит по URL-адресу страницы и получает ответ 404, возможно, у пользователя нет разрешения на просмотр сайта. Чтобы это исправить, убедитесь, что пользователь является участником проекта.
Для экземпляров Geo ошибки 404 возникают на Страницах после преобразования вторичного экземпляра в первичный. Дополнительные сведения см. в документации по администрированию Pages
Не удается воспроизвести мультимедийный контент в Safari
Переменная FF_USE_FASTZIP включает флаг функции, необходимый для ARTIFACT_COMPRESSION_LEVEL .
Читайте также: