Веб-разработка на Python – с фреймворком или без него [закрыто]

StackOverflow https://stackoverflow.com/questions/136069

  •  02-07-2019
  •  | 
  •  

Вопрос

Я планирую перенести приложение PHP на Python.Приложение в основном предназначено для сбора и обработки данных.Основное приложение работает как отдельное приложение командной строки.У приложения есть веб-интерфейс, который по сути представляет собой очень легкий интерфейс отчетов.

Я не использовал фреймворк в версии PHP, но, будучи новичком в Python, мне интересно, было бы выгодно использовать что-то вроде Django или хотя бы Genshi.Предостережение: я не хочу, чтобы распространение моего приложения было перегружено частями платформы, которые мне нужно будет распространять вместе с приложением.

Является ли использование только импорта cgi в Python лучшим способом в этой ситуации?Я склонен думать, что фреймворк — это слишком много накладных расходов, но, возможно, я не думаю о них в «питоновском» смысле.Какие у вас есть предложения по этому сценарию?

Это было полезно?

Решение

Python для командной строки, IMO, определенно стоит на первом месте.Заставьте это работать, поскольку это суть того, что вы делаете.

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

Не используйте голую CGI.Это не невозможно, но слишком многое может пойти не так, и все они решены с помощью фреймворков.Зачем что-то изобретать?Просто используйте чужой код.

Фреймворки предполагают обучение, но не требуют реальных «накладных расходов».Они не медленные.Это код, который вам не нужно писать или отлаживать.

  1. Изучите немного Python.

  2. Сделайте Джанго руководство.

  3. Начните создавать веб-приложение.

    а.Запустите проект Django.Создайте небольшое приложение в этом проекте.

    б.Создайте свою новую модель, используя Django ORM.Создайте модульный тест Django для модели.Будьте уверены, что это работает.Вы сможете использовать страницы администрирования по умолчанию и много экспериментировать.Просто не стройте весь веб-сайт еще.

  4. Заставьте свое приложение командной строки работать с помощью Django ORM.По сути, вам нужно настроить файл настроек, чтобы это приложение работало нормально.См. настройки/конфигурация раздел.

  5. Как только вы получите свою командную строку и администратор по умолчанию, вы можете закончить веб -приложение.

Вот золотое правило фреймворков: Это код, который вам не нужно писать, отлаживать или поддерживать. Используй их.

Другие советы

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

Однако имейте в виду: это не самая любимая среда в сообществе Python, но она может подойти именно вам.Вы также можете проверить веб2py, но я знаю об этом меньше.

Зависит от размера проекта.Если бы у вас было всего несколько предыдущих php-скриптов, которые вызывали ваше автономное приложение, я бы, вероятно, выбрал cgi-приложение.

Если вы используете базы данных, переписывание URL-адресов, создание шаблонов, управление пользователями и тому подобное, то использование фреймворка — хорошая идея.

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

Удачи!

Недавно я портировал приложение PHP на Python, используя веб.py.Что касается фреймворков, то они чрезвычайно легкие, с минимальными зависимостями и, как правило, не мешают вам, так что это может быть компромисс, который вы ищете.

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

Django позволяет быстро создать веб-сайт, это точно.Вам не нужно быть мастером Python, чтобы использовать его, и поскольку он очень питоничен по своему дизайну и в нем нет никакой «магии», это поможет вам изучить Python по ходу дела.

Начните с примеров, посмотрите несколько скринкастов Django от TwiD, и все будет в порядке.

Начните медленно, настроив администратора и поиграв с ним через оболочку.Как только вы разберетесь с ORM и поймете, как все работает, начинайте создавать настоящие вещи!

Фреймворк не вызовет никаких проблем с производительностью, как S.Лотт сказал, что это код, который не нужно поддерживать, и это лучший вариант.

Выбирайте фреймворк.Базовые вещи, такие как обработка сеансов, станут кошмаром, если вы их не используете, потому что Python не является веб-специализированным, как PHP.

Если вы считаете, что django — это слишком много, вы можете попробовать более легкий вариант, например, очень маленький, но все же удобный web.py.

Ради Пита, используйте фреймворк!Существуют буквально десятки фреймворков: от CherryPy до Django, Albatross и...хорошо..вы называете это.Фактически, огромное количество веб-фреймворков — это то, на что люди указывают, когда жалуются на популярность Rails.

Сообщество веб-разработчиков Python разделено и не имеет единого голоса.Но это вообще другая тема!Дело в том, что существуют «веб-инструментарии» (например.альбатрос), которые довольно легкие, но достаточно мощные, чтобы вы могли продержаться весь день (например,автоматическая проверка бота не привела к простой подделке отправки формы и не помогла поддерживать MVC в чистоте).

Если вам нужно что-то, что не является «слишком большим фреймворком», посмотрите здесь:

http://wiki.python.org/moin/WebFrameworks

Посмотрите раздел «Базовые платформы, обеспечивающие создание шаблонов».Все они легкие и выполняют все функции «не изобретайте велосипед», не навязывая вам грузовик Mac.

Это зависит от того, как вы собираетесь распространять свое приложение.
Если он будет использоваться только внутри, выберите django.Работать с ним одно удовольствие.Однако django действительно не справляется с задачей распространения;django-приложения сложно настроить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top