LINUX.ORG.RU
ФорумAdmin

вызов python из html


0

1

Вот возник вопрос: Как из HTML вызвать python скрипт? И вообще стоит ли это делать, может лудше взять php.

Для чего это затеял: хочу в веб морду вывести /proc/net/ip_conntrack ну и, соответственно, распарсить его для удобоизучаемости при помощи python хотелось бы.

никак, ставишь въеб сервер, шлеш к нему запрос, обработчиком запроса вешаешь что хошь.

Иначе можно посовокуплятся с xul

wfrr ★★☆ ()
Ответ на: комментарий от wfrr

мда, ковырять xul совсем не хочется... щас, вот ради интереса попробовал в php изобразить:

<?php
$input = exec("awk -Fpackets '{ print $1 }' /proc/net/ip_conntrack | grep udp");
//echo "<pre>".shell_exec($input)."</pre>";
echo "<pre>$input</pre>";
?>

только огорчился..... белый лист выдаёт... видать и прав не хватает

Acceptor ★★ ()
Ответ на: комментарий от Acceptor

а в чем проблема?

import os
from wsgiref.simple_server import make_server

def page(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    cmd="awk -Fpackets '{ print $1 }' /proc/net/ip_conntrack | grep udp"
    fin,fout = os.popen4(cmd)
    result=fout.read()

    return result

httpd = make_server('', 8000, page)
httpd.serve_forever()

и соответственно видите результат на 127.0.0.1:8000

xhat ()
Ответ на: комментарий от Acceptor

Права на это файл жестко зашиты в ядро, и читать его может только рут. Насколько я помню, через chmod их можно сменить, но после выгрузки и загрузки модуля они все равно сбросятся.

В общем, настрой sudo для апачового юзера на право cat'ать этот файл.

nnz ★★★★ ()
Ответ на: комментарий от xhat

xhat, спасибо, я не расчитывал на такой модуль, буду щас ковырять....ну потом демон,а потом счастье ))))

Acceptor ★★ ()
Ответ на: комментарий от nnz

nnz, ага уже заметил (((

вот потому к питону и склоняюсь... он вроде бы более могуч, нежели php (тем более с модулем wsgiref)

Acceptor ★★ ()

делай наоборот - напиши скрипт на питоне, который будет генерировать html отчет (apache+mod_python)

dreamer ★★★★★ ()
Ответ на: комментарий от dreamer

Да, это здоровская идея, вот только беда в данном случае в том что отчет должен генерироваться при обновлении страници в браузере, а не из скрипта (надеюсь вы меня поняли)

Acceptor ★★ ()
Ответ на: комментарий от dreamer

я не вижу способа заставить питон по кнопке F5 генерировать мне отчет в том же окне где я нажал F5.

если я буду

делай наоборот - напиши скрипт на питоне, который будет генерировать html отчет (apache+mod_python)

, то мне придется добавить этот скрипт в cron например и генерировать отчет ежесекундно, что будет давать лишнюю, неоправданную нагрузку на систему.

Acceptor ★★ ()
Ответ на: комментарий от Acceptor

fin = input (читай - то что ты вводишь в терминал с клавиатуры, или имитируя клаву)
fout = output(читай = то что выводится в терминале при выполнений команды)

если input тебе не нужен, то можешь заменить

fin,fout = os.popen4(cmd)
result=fout.read()

на:

result=os.popen(cmd).read()

обрати внимание на отстутствие 4 в popen

тебе посоветовали связку apache+mod_python - так вот, mod_python умер; теперь есть mod_wsgi, но это геморно и не нужно для такой задачи поднимать апач и настроивать mod_wsgi, когда можно сервер прямо из кода поднять как в моем примере.

bottle - неплохо, но 2 недостатка: надо установить лишный пакет и это если я не ошибаюсь просто обертка над wsgiref...

xhat ()
Ответ на: комментарий от xhat

bottle - неплохо, но 2 недостатка: надо установить лишный пакет и это если я не ошибаюсь просто обертка над wsgiref...

Да возможно, но тут думаю верх возьмёт то что удобнее.

и в очередной раз спасибо!

Acceptor ★★ ()
Ответ на: комментарий от Deleted

webpy хороший минифрейморк, как раз для таких вещей.

dreamer ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.