Подтвердить что ты не робот

Как создать веб-интерфейс для простого python script?

Я изучаю python. Я создал несколько сценариев, которые я использую для разбора различных веб-сайтов, которые я запускаю ежедневно (по мере обновления их статистики), и посмотрим на результат в интерпретаторе Python. Я хотел бы создать веб-сайт для отображения результатов. То, что я хочу сделать, это запустить my script, когда я перейду на сайт, и отобразить отсортированную таблицу результатов.

Я посмотрел Django, и я частично участвую в учебнике, но, похоже, это ужасно много накладных расходов, что должно быть простой проблемой. Я знаю, что я могу просто написать Python script для вывода простого HTML, но это действительно лучший способ? Я хотел бы иметь возможность сортировать таблицу по различным столбцам.

У меня много лет опыта программирования (C, Java и т.д.), но у меня очень мало опыта веб-разработки.

Спасибо заранее.

4b9b3361

Ответ 1

Если вы создаете неинтерактивные страницы, вы можете легко настроить любой современный веб-сервер для выполнения вашего python script как CGI. Вместо загрузки статического файла ваш веб-сервер вернет вывод вашего python script.

Это не очень сложно, но если вы просто возвращаете результат без необходимости отправки даты, указанной в браузере, это самый простой способ (масштабирование под нагрузкой - это другая история).

Вам даже не нужен модуль "cgi" из python, если вы не получаете никаких данных из браузера. Что-то более сложное, чем это, и вы должны использовать веб-фреймворк.

Примеры и другие методы

  • Простой пример: самая сложная часть - это конфигурация веб-сервера
  • mod_python: Сократите накладные расходы CGI (в противном случае apache запускает интерпретатор python для каждого удара)
  • python module cgi: отправка данных на ваш python script из браузера.

Сортировка

Сортировка со стороны Javascript: Я использовал эту библиотеку javascript для добавления отсортированных таблиц. Это самый простой способ добавить сортировку, не требуя дополнительной работы или другого HTTP GET.

Инструкции:
 Скачать этот файл
 Добавьте в свой HTML-код  Добавьте class= "sortable" в любую таблицу, которую вы хотите отсортировать.  Нажмите на заголовки для сортировки

Ответ 2

Вы считали флягу? Как и Tornado, это как "микро-каркас", так и простой веб-сервер, поэтому у него есть все, что вам нужно прямо из коробки. http://flask.pocoo.org/

В этом примере (прямо с домашней страницы) в значительной степени суммируется, насколько простым может быть код:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Ответ 3

Вы можете рассмотреть Tornado, если Django слишком много накладных расходов. Я использовал оба варианта и согласен с тем, что если у вас есть что-то простое/маленькое, чтобы сделать и еще не знаю Django, он будет экспоненциально увеличивать ваше время на производство. С другой стороны, вы можете "получить" Торнадо через пару часов и получить что-то относительно простое в течение дня или двух, не имея опыта с ним. По крайней мере, это был мой опыт.

Обратите внимание, что Tornado по-прежнему является компромиссом: вы получаете много простоты в обмен на огромный рог изобилия функций и ярлыков, которые вы получаете с Django.

PS - помимо того, что он является "микро-каркасом", Tornado также является собственным веб-сервером, поэтому нет никаких проблем с wsgi/mod-cgi/fcgi.... просто напишите свои обработчики запросов и запустите его. Обязательно просмотрите демоверсии, включенные в дистрибутив.

Ответ 4

Вы видели bottle framework? Это micro framework и очень просто.

Ответ 5

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

Посмотрите на пирамиду, ранее известную как BFG. Это намного меньше. http://pypi.python.org/pypi/pyramid/1.0a1

Другие микрофрактограммы, которые нужно проверить, приведены здесь: http://wiki.python.org/moin/WebFrameworks

С другой стороны, в этом случае он, вероятно, тоже будет излишним. похоже, что вы можете запускать script один раз каждые десять минут, писать статический файл HTML и просто использовать Apache.

Ответ 6

Если я правильно понял ваши требования, вы могли бы найти Wooey очень интересным.

Wooey - это приложение Django, которое создает автоматические веб-интерфейсы для скриптов Python: http://wooey.readthedocs.org

Здесь вы можете проверить демо: https://wooey.herokuapp.com/

Ответ 7

Если вы не хотите писать свой собственный инструмент, есть довольно продвинутый инструмент для выполнения ваших скриптов: http://rundeck.org/ Это довольно просто начать и может быть настроено для сложных сценариев. Для требования пользовательского представления (с сортируемыми результатами), я считаю, вы можете реализовать простой плагин для перевода вывода script в html-элементы.

Кроме того, для простых настроек я мог бы порекомендовать мой собственный инструмент: https://github.com/bugy/script-server. Он не имеет множества функций, но очень удобен для конечных пользователей и поддерживает интерактивное выполнение.

Ответ 8

Если вам не нужны какие-либо данные из браузера, это похоже на почти статическую веб-страницу, которая просто меняется один раз в день. Вам потребуется только один способ получить html из вашего script, в том месте, где ваш веб-сервер может получить к нему доступ.)

Итак, вы использовали бы какую-то форму templating; если вам понадобится какая-то структура над одной страницей, статические создатели сайта/блога, вы можете подавать свой результат, например, в формат Markdown, и назовите их make html или тому подобное.