исполняемые файлы и джанго - PullRequest
0 голосов
/ 15 апреля 2011

Можно ли использовать исполняемые файлы с Django. Например, у меня есть форма Django, которая принимает входной файл. Я хочу передать файл в качестве аргумента в скрипт / исполняемый файл / программу и вывести результаты обратно с помощью django. Что было бы хорошей отправной точкой для этой идеи? Большое спасибо

Ответы [ 4 ]

5 голосов
/ 15 апреля 2011
1 голос
/ 16 апреля 2011

Вы хотите что-то подобное?

>>> import commands 
>>> commands.getstatusoutput('pwd')
(0, '/home/efazati')
1 голос
/ 16 апреля 2011

Вопрос, который вы должны задать, возможен ли в python.По сути, все, что вам нужно было бы сделать, это взять входные данные, в скрипт на python, который вы можете вызывать из представления django, или нет.Запустив команду execute subprocess со своим исполняемым файлом, вы получите результаты.:)

Гудлак.

0 голосов
/ 16 апреля 2011

Да, вы можете сделать это. Есть несколько разных способов сделать это в Python. Если вы хотите прочитать вывод и использовать его, то, вероятно, вы хотите popen, найденный в http://docs.python.org/library/os.html#os.popen

Предупреждение, это может быть очень опасно. Если данные, добавленные в командную строку, являются вредоносными (даже случайно), то на сервере может произойти сбой. Вы фактически предоставляете людям, отправляющим формы, возможность выполнять команды на сервере с теми же разрешениями, что и у веб-сервера.

import os
ls_fd = os.popen('ls -l /tmp')
output = ls_fd.read()
ls_fd.close()

Делая это таким образом, ваш ls_fd является файлом, похожим на объект. Вы .read () это как файл. Вы можете сделать это только один раз, тогда вы в конце файла. Точно так же вы должны .close () сделать это, когда закончите.

Настоятельно рекомендуем не добавлять пользовательский ввод в командную строку. Вы можете создать список возможных вариантов, а затем дать пользователю выбор, какой он хочет. Затем вместо ввода пользовательского ввода и добавления его в конец командной строки вы можете использовать одну из предварительно настроенных командных строк и выполнить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...