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

Рекомендуемая библиотека/инфраструктура python для локального веб-приложения?

Я хочу создать простое веб-приложение LOCAL на Python.

Веб-сервер и "внутренний" код будут работать в одной и той же системе (первоначально в системе Windows) в качестве пользовательского интерфейса. Я сомневаюсь, что это имеет значение, но пользовательский интерфейс будет типичным веб-комбо Google Chrome, HTML, CSS, JavaScript и jQuery.

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

Предложения?

4b9b3361

Ответ 1

Я думаю, что web2py может быть решением для geat. Он не требует установки и не имеет зависимостей (он даже поставляется с собственным интерпретатором Python, а также с веб-сервером и базой данных SQLite). Вы даже можете распространять свое приложение как двоичный файл Windows или Mac (включая web2py), и пользователи могут легко запускать его локально без установки.

Ответ 2

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

Это звучит как идеальное соответствие вашим требованиям:)

Ответ 3

Я написал несколько таких приложений "локального веб-сервера", так как я задал этот вопрос. У меня нет окончательного ответа "какая структура лучше", но у меня есть некоторые идеи:

  • Простая или микро-каркас действительно является хорошим выбором.
  • Я пробовал рамки CherryPy и Flask. Флакон - это явный победитель для простоты, а базовые "настроить некоторые страницы обслуживания AJAX" абсолютно тривиальны для записи в Flask. Документация CherryPy часто непрозрачна, и ее сложность установки заметно выше.
  • Я доволен Flask, но я продолжаю оглядываться. Мне особенно хотелось бы попробовать "Бутылку", которую я видел очень внимательно, в том числе в других обсуждениях StackOverflow и этом параллельном сравнении: http://www.slideshare.net/r1chardj0n3s/web-microframework-battle web2py также стоит попробовать.

Ответ 5

Я использовал BaseHTTPServer для этой цели. Это веб-сервер, встроенный в стандартную библиотеку Python, и позволяет вам полностью контролировать поставляемый контент.

Поскольку это часть стандартной библиотеки Python, вам не нужно беспокоиться о какой-либо конфигурации на платформе. Я использовал один и тот же локальный сервер script в системе Windows, Linux и Mac OS X без изменений.

Примерный бит кода может быть:

import BaseHTTPServer

class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write("Hello world!")

server_address = ('', 8080)
httpd = BaseHTTPServer.HTTPServer(server_address, Handler)
httpd.serve_forever()

Ответ 6

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

Ответ 7

Django поставляется со встроенным веб-сервером, который позволяет вам полностью тестировать ваше приложение локально (через localhost:8080 или что-то в этом роде). На самом деле я использовал его несколько раз для запуска полного веб-приложения локально до его развертывания на сервере. Я не вижу причин, по которым вы не можете использовать его для своих локальных веб-приложений. Хотя может показаться, что Django большой и сложный, это решение является самодостаточным и простым в управлении:

  • Установить Django
  • Пройдите большой учебник, который очень скоро покажет вам, как запустить веб-сервер
  • Напишите свой код

Что об этом. Развертывание его на других машинах также просто сделать, особенно с чем-то вроде virtualenv.

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

Ответ 8

Очень простой сервер в стандартной библиотеке wsgiref.simple_server.

Пример выглядит тривиальным (demo_app также является частью модуля):

from wsgiref.simple_server import make_server, demo_app

httpd = make_server('', 8000, demo_app)
print("Serving HTTP on port 8000...")

# Respond to requests until process is killed
httpd.serve_forever()

Ответ 9

Скорее всего, вам нужен интерфейс администратора для основных операций CRUD в некоторых таблицах базы данных. Тогда Django - ваш лучший выбор.

Ответ 10

Любая инфраструктура сделает это. Django, безусловно, будет делать, но поскольку вы хотите что-то меньшее, я бы порекомендовал бы BFG/Pyramid, который очень легкий, чрезвычайно расширяемый, гибкий и забавный в использовании. Но есть множество других, и, как уже упоминалось, встроенный wsgiref такой же легкий, как вы.: -)