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

Веб-разработка Python - с картой или без нее

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

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

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

4b9b3361

Ответ 1

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

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

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

Рамки включают обучение, но не настоящие "накладные расходы". Они не медленны. Это код, который вам не нужно писать или отлаживать.

  • Изучите Python.

  • Сделайте Django учебник.

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

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

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

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

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

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

Ответ 2

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

Будьте предупреждены, однако, это не самая любимая инфраструктура в сообществе Python, но это может быть только для вас. Вы также можете проверить web2py, но я об этом меньше знаю.

Ответ 3

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

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

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

Удачи!

Ответ 4

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

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

Ответ 5

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

Начните с примеров, посмотрите некоторые скринканы django из TwiD, и вы будете в пути.

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

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

Ответ 6

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

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

Ответ 7

Для любви к птенцу используйте рамки! Там есть буквально десятки фреймворков, от вишневого до джанго до альбатроса до... ну.. ты назовешь его. На самом деле огромное количество веб-фреймворков - это то, о чем указывают люди, когда они скулят о популярности Rails.

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

Если вы хотите что-то, что не "слишком много фреймворков", посмотрите здесь:

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

Посмотрите в разделе "Основные рамки, обеспечивающие шаблоны". Они все легки и делают все "не изобретать велосипед", не заставляя вас грузовик Mac.

Ответ 8

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