интеграция скриптов python с django

Я написал несколько тестовых скриптов в python, которые вызывают некоторые apis для параллельного приложения и выводят результаты в базу данных, поэтому я могу использовать jasper для отчета о результатах. В настоящее время скрипты запускаются с использованием интерпретатора python, т. Е. Дважды щелкните файл python с некоторыми параметрами и переменными, модифицированными в скрипте, который затем инициирует тесты. Я хотел бы перейти к более удобному для пользователя интерфейсу, чтобы другие люди могли использовать эти тестовые скрипты, не изменяя код python. Поэтому я думаю об использовании django и создании веб-страницы с флажками, и если галочка будет отмечена галочкой, то она выполнит этот конкретный скрипт сценария python или текстовое поле, которое передаст значения данной переменной, например , У меня есть несколько вопросов о том, как это может быть достигнуто.

1 – мне нужно будет внедрить код python в исходный код django или я могу вызвать скрипт python с веб-страницы, обслуживаемой django?

2 – Если бы я запускал это с веб-страницы, как бы я мог убедиться, что если веб-страница была закрыта, тест будет продолжен в фоновом режиме.

3 – Есть ли способ вывести статус тестового примера на веб-страницу и если веб-страница была закрыта, чтобы статус был доступен, если веб-страница была вновь открыта?

Большое спасибо – oli

2 Solutions collect form web for “интеграция скриптов python с django”

Если у вас есть функция python, вы можете вызвать из представления Django django, возможно, с формой в качестве ввода параметра. Если у вас есть длительные процессы, вы можете подумать о совете отсюда: Как запустить долговременный процесс из представления Django?

from mytests import testfunc def test_parameter_view(request): if request.method == 'POST': # If the form has been submitted... form = ParameterForm(request.POST) if form.is_valid(): testfunc(form.cleaned_data['parameter']) # <-- Here the actual testing happens return HttpResponseRedirect(reverse(test_result)) # Redirect after POST else: form = ParameterForm() return render_to_response('test.html', { 'form': form, }) 

В представлении test_result вы можете получить доступ к значениям результатов теста из базы данных.

Если пользователь закрывает браузер или нет, это не влияет на серверные процессы, которые уже были запущены. И поскольку вы записываете свои результаты в базу данных, они постоянны и могут быть доступны в любое время после завершения теста.

Если вы не хотите переносить свои сценарии в представления django, есть другой способ:

1 – Настройте форму со всеми параметрами, которые вы хотите передать сценарию

2 – GET или POST параметры формы и сохранить их в переменных с помощью var1 = request.POST['param1'] и т. Д.

3 – Используйте модуль subprocess для выполнения вашего скрипта. http://docs.python.org/library/subprocess.html

  • Python Social Auth NotAllowedToDisconnect at / disconnect / facebook / 1 /
  • Как я могу визуализировать древовидную структуру (рекурсивную) с использованием шаблона django?
  • Ошибка Django / Haystack: elasticsearch.exceptions.RequestError: TransportError (400, 'parsing_exception', ...)
  • Отфильтровать базу данных Django для поля, содержащего любое значение в массиве
  • Миграция Django с полем uuid генерирует дублированные значения
  • Модели Django: взаимные ссылки между двумя классами и невозможность использования форвардной декларации в python
  • Django Rest Framework - Как добавить настраиваемое поле в ModelSerializer
  • Django не отправляет сообщения об ошибках - как я могу отлаживать?
  • Python - лучший язык программирования в мире.