Работа с Genie в Engee
Engee предоставляет возможность разрабатывать собственные приложения непосредственно в своей среде с помощью фреймворка Genie. Это позволяет пользователям создавать собственные приложения, веб-интерфейсы и различные интеграционные решения прямо в рабочем пространстве Engee.
Engee — это готовое и настроенное окружение для запуска приложений, созданных с использованием фреймворка Genie. Engee также предоставляет базовый функционал для их модификации. Далее в статье показаны основные принципы работы с Genie, зная которые, вы сможете адаптировать готовые приложения под свои нужды. |
Genie — это фреймворк для разработки веб-приложений для Julia. Подробнее о фреймворке читайте на официальном сайте.
На Genie уже написан и полностью функционирует Редактор цифровых фильтров.
Среда Engee оптимизирована под работу с фреймворком Genie и несмотря на ядро Julia и поддержку работы с Python, не рекомендуется использовать любые другие фрейморки. |
Использование Genie
Чтобы создать собственное приложение в Engee, следуйте следующим инструкциям. Приложение может быть представлено в виде .jl-скрипта или директории с файлом app.jl
. Размещение таких приложений выполняется в пределах директории /user
. Ниже описаны основные шаги для запуска, управления и работы с приложениями на основе Genie.
-
Размещение приложения — созданное приложение необходимо поместить в директорию
/user
. Если приложение представляет собой директорию, то убедитесь, что в ней есть файлapp.jl
. Удалите файлы config и*.toml
, если они присутствуют. Пример размещения:/user/apps/MyGenieApp/ app.jl public/ src/
julia -
Запуск приложения — для запуска приложения выполните следующую команду:
engee.genie.start("/user/apps/MyGenieApp", devel=true, log_file="/user/apps/MyGenieApp")
juliaздесь:
-
devel
: Опциональный параметр, включает режим разработки, что позволяет видеть изменения без перезапуска. -
log_file
: Путь для сохранения логов приложения. Указывать необязательно.Если указан относительный путь, то команда ищет приложение относительно текущей директории.
-
-
Остановка приложения — для остановки запущенного приложения выполните:
engee.genie.stop("/user/apps/MyGenieApp")
juliaПуть может быть задан относительным или абсолютным.
-
Список запущенных приложений — чтобы проверить, какие приложения работают в данный момент, выполните команду:
engee.genie.list()
julia -
Просмотр логов приложения — для получения логов работающего приложения используйте команду:
engee.genie.logs("/user/apps/MyGenieApp")
juliaЕсли при запуске приложения параметр
log_file
не был указан, то команда все равно выведет текущие логи.
Использование сторонних пакетов в приложении
В приложении можно использовать сторонние пакеты.
Для этого необходимо загрузить файл Project.toml
и выполнить команду:
engee.genie.pkg_instantiate("/path/to/app")
julia
При этом:
-
Файлы
app.jl
иProject.toml
должны находиться в директории/path/to/app
. -
Project.toml
не должен содержать пакеты Engee, но они все равно будут доступны для Genie.
- Просмотр списка установленных пакетов
-
Чтобы вывести список всех пакетов, используемых в приложении, выполните команду:
engee.genie.pkg_status("/path/to/app")
julia
- Установка новых пакетов
-
Для установки одного или нескольких пакетов используйте:
engee.genie.pkg_add("/path/to/app", "SomePackage")
julia
или
engee.genie.pkg_add("/path/to/app", ["SomePackage1", "SomePackage2"])
julia
- Удаление пакетов
-
Чтобы удалить один или несколько пакетов, выполните:
engee.genie.pkg_rm("/path/to/app", "SomePackage")
julia
или
engee.genie.pkg_rm("/path/to/app", ["SomePackage1", "SomePackage2"])
julia
Ограничения и особенности использования
-
Невозможна установка новых пакетов, не включенных в сборку Engee. Однако с помощью следующей команды можно посмотреть доступные пакеты:
print(read("/usr/local/genie/Project.toml",String))
julia -
Приложение, представленное в виде директории с файлом
app.jl
, считается стандартным. Это рекомендуемый способ организации проекта.
Пример создания приложения
Создайте файл app.jl
в директории /user
файлового браузера :
→
В файле app.jl
добавьте код приложения, написанного с помощью фреймворка Genie:
module App
using GenieFramework
@genietools
@app begin
@in N = 0
@out squared = 0
@onchange N begin
squared = N^2
end
end
function ui()
[
cell([
p("Enter a number to calculate its square:")
]),
cell([
textfield("N", :N)
]),
cell([
bignumber("The square of the number is:", :squared)
])
]
end
@page("/", ui)
end
julia
Далее сохраните файл приложения app.jl
с внесенными изменениями:
И запустите приложение командой:
engee.genie.start("/user/app.jl")
julia
Это приложение позволяет возводить введенное число в квадрат, демонстрируя, как можно создавать собственные приложения прямо в рабочем пространстве Engee.
Если сессия Engee была завершена, а приложение осталось открытым, то система выдаст ошибку: