Как интегрировать существующие скрипты в Django?

Я только что познакомился с фреймворком Django, и я хотел бы использовать этот фреймворк для многих моих системных сценариев Perl/Python/wlst для моей группы. Как я могу взять обычный вывод командной строки и вывести его в браузер почти в реальном времени? Я изучил сериализацию, но не могу найти хороших руководств. Я просто ищу предложения о том, как сделать обычный скрипт Python/Perl и заставить его работать с веб-сайтом на основе Django.

В частности: у меня есть скрипт, который добавит пользователя в группу к роли для домена weblogic. Я хочу сделать так, чтобы вы заполняли форму, она подключалась к серверу, делала работу и возвращала вывод. Единственное, для подключения может потребоваться некоторое время.


person Colin Wood    schedule 06.04.2011    source источник


Ответы (2)


Вы хотите, чтобы внешний скрипт siplay работал в веб-браузере? Затем я предлагаю вам заставить эти сценарии записывать свои результаты в базу данных, а затем использовать модели django для извлечения и отображения информации.

Если вы хотите выполнять скрипт каждый раз, когда пользователь открывает веб-страницу и отображает результат, используйте этот код Python:

def command_output(cmd):
    """ Capture a command's standard output."""
    import subprocess;
    return subprocess.Popen(cmd.split(), stdout=subprocess.PIPE).communicate()[0];

result = command_output('ls -al');
person Silver Light    schedule 06.04.2011
comment
Работа почти в реальном времени заставляет меня думать, что это более длительные сценарии, в которых браузер должен отображать дополнительный вывод с течением времени. - person ysth; 06.04.2011
comment
да, эти скрипты могут иногда занимать немного больше 30 секунд, по крайней мере. - person Colin Wood; 07.04.2011
comment
Этот вид работает, но не отображает его в реальном времени, когда процесс заканчивается. - person Colin Wood; 07.04.2011
comment
Я считаю, что это не сработало для меня, потому что я использую сервер разработки. Я видел другие посты. - person Colin Wood; 13.04.2011

Я думаю, вы должны быть немного более конкретным. Если вы хотите вывести результаты «операции» в браузере, вы должны использовать view, который отображает шаблон.

И цитируя документы по просмотрам от django:

Функция представления, или сокращенно представление, — это просто функция Python, которая принимает веб-запрос и возвращает веб-ответ. Этот ответ может быть HTML-содержимым веб-страницы, перенаправлением, ошибкой 404, XML-документом или изображением. . . или что-нибудь, на самом деле. Само представление содержит любую произвольную логику, необходимую для возврата этого ответа. Этот код может жить где угодно, пока он находится на вашем пути Python.

Итак, если у вас есть работающая функция/скрипт python, вы можете импортировать ее в свое представление и передавать результаты таким образом в свой шаблон.

person arie    schedule 06.04.2011