Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > Хтмл-интерфейс для програм на питоне |
Автор: kulibinka 10.6.2007, 15:39 |
Есть скрипт на питоне. К нему нужно приделать интерфейс. Такой вопрос: можно ли использовать для этой цели обычный хтмл? (== как при клике на ссылке запустить нужную ф-ю этого скрипта). |
Автор: cherep 10.6.2007, 18:41 |
Очевидно, как. Использовать серверную часть, будь-то CGI, WSGI, какой-нибудь фреймворк (Django, TG, ...). Именно для того оно и придумано, по большому счету. |
Автор: kulibinka 10.6.2007, 19:45 |
Да в том то и дело что я без серверной части хочу обойтись. Т.е. просто есть скрипт, и есть страничка с которой я смогу сделать запуск этого скрипта... Уверен что есть простой способ на html-страницы кликом выполнить запуск любой программы - это первый шаг к решению... |
Автор: kulibinka 10.6.2007, 20:35 |
Ну, для того чтобы этот способ увидеть я и создал этот пост ![]() (хотя думаю, ответ лежит не в питонной, а в какой-то явоскриптовой области) |
Автор: pythonwin 10.6.2007, 22:07 | ||
вроде серверная часть js позволяет это делать, но это тоже будет серверная часть ![]() на клиентской части js это не сделать... думаю лучше постать что-то питоновское на сервер и не изобретать велосипед ![]() |
Автор: kulibinka 11.6.2007, 05:58 |
Вот тут http://forum.vingrad.ru/forum/topic-77129/unread-1/anchor-entry1164376/0.html нашел схожую тему - говорят что все можно... Жду ответа на вопрос "как" ![]() |
Автор: setq 11.6.2007, 10:32 |
Модератор: Если хотите, перенесу тему в Javascript. |
Автор: kulibinka 12.6.2007, 10:44 |
Если Вам тоже кажется что ответ там вылезет - перенесите пожалуйста. |
Автор: Ulysses4j 12.6.2007, 11:20 |
HTML и Javascript ничего запускать не умеют. Запускать программы на выполнение могут ActiveX объекты, которые работают только в IE, и Java-апплеты, которые кроссбраузерны. Но и это не является их профилем, чтобы добиться такой фунциональности нужно ими весьма искуссно владеть. А вы пытаетесь изобрести велосипед под названием web-сервер. То что вы описали - это ровно его функциональность. |
Автор: astoon 12.6.2007, 12:36 | ||||
Если не использовать существующие вэб-серверы, тогда нужно писать свой ![]() То есть добавить к Вашему скрипту небольшой модуль с циклом: слушать сокет - обработать запрос - ответить/или закончить. На обработку запроса - пара-тройка функций, разбирающих запросы, скажем, в кортеж из двух словарей: один - параметры GET, второй - остальные из заголовка. Что-то примерно так:
Запускаем приложение, вызывая код такого типа:
Самая лабуда здесь - четко соблюдать открытие - закрытие сокета, а то будет "сокет занят" при повторном запуске программы. Если не ошибаюсь, при удалениии всех ссылок на сокет, Питон-интерпретатор должен его закрыть, однако в реальности он не успевает это сделать. Поправьте, если где не прав. ЗЫ. А вообще есть готовые мини-серверы на Питоне, на форуме где-то были ссылки. |
Автор: Void 12.6.2007, 16:45 | ||
Я, кажется, понял. Вам нужен встроенный HTML-рендерер, что-то вроде http://www.terrainformatica.com/htmlayout/. К сожалению, насколько мне известно, это единственная пригодная для построения GUI библиотека такого рода, и обёрток для Питона к ней не наблюдается.
Конечно есть. Модули BaseHTTPServer, SimpleHTTPServer, wsgiref.simple_server в стандартной поставке. |
Автор: Ulysses4j 12.6.2007, 16:54 |
Ну да, вместо эмуляции веб-сервера предлагается воспользоваться эмуляцией браузера. Интересно, конечно... Ох и много бы я отдал, чтобы посмотреть на "серверную часть" JS... |
Автор: pythonwin 12.6.2007, 19:22 | ||
она платная и вроде дорогая - можешь спросить в разделе по JS PS для адмимнистрации - думаю лучше перенести тему в раздел python-web |
Автор: dvska 20.6.2007, 23:23 |
Да-да, как уже описали astoon и Void, никакого Javascript'а не нужно, а нужно запущать прогу из-под простейшего web-сервера (web.py, wsgiref.simple_server, quixote, cherrypy ....). http://google.com/search?q=%2Bpython+%22%D0%9E%D0%BB%D0%B5%D0%B3+%D0%91%D1%80%D0%BE%D0%B9%D1%82%D0%BC%D0%B0%D0%BD%22+%7C%22Oleg+Broitmann%22 даже, помнится, в еxe-шники это всё заворачивал с помощью py2exe.. |
Автор: pythonwin 21.6.2007, 06:59 | ||||
согласен что хоть какая-то серверная часть нужна, но постановка задачи такая:
:( |