Как использовать Python как серверный язык с точки зрения PHP

11

Я знаю только программирование на стороне сервера с PHP. Для меня я пишу что-то в index.phpи звоню http://localhost/index.phpи вижу результаты сценария PHP. Я использовал CakePHP и понимаю, что есть кое-что, что вы можете сделать с перезаписью URL-адресов, но, на мой взгляд, между URL-адресами и PHP-файлами на сервере существует однозначное отношение.

Сейчас я много делаю с Python, но просто утилиты командной строки. Я хотел бы использовать Python вместо PHP для моего следующего проекта. До сих пор мне говорили о том mod_python, что я должен использовать фреймворк, такой как Pylons, Twisted или даже Django, чтобы получить какой-либо вывод. Другие говорили, что мне просто нужен print()HTTP-заголовок, а затем скрипт будет выводиться так же, как я использую PHP.

Я хотел бы написать что-то, что в основном занимает только список каталогов и делает его красивым, чтобы я мог получить доступ к куче файлов PDF из мобильного браузера. Я знаю, как сделать это с PHP, я знаю, как создать скрипт Python, который будет генерировать HTML. Я просто не знаю, как выполнить этот скрипт при открытии http://localhost/pdfcentral/.

Как мне настроить сервер? Работает на Ubuntu 10.04.

Мартин Уединг
источник
Есть много вариантов, которые вы можете использовать, но самый простой способ - поместить скрипт Python в ваш cgi-binкаталог, чтобы сервер знал, как его выполнить, и, при желании, сделать файл PHP перенаправленным на него, если вы хотите использовать другой путь. Что касается самого скрипта Python, вы можете выполнить следующую процедуру: forrestbao.blogspot.com/2009/08/…
ionFish

Ответы:

9

mod_pythonбольше не активно развивается. Хотя Apache говорит, что это не значит, что проект мертв -

В настоящее время mod_python не находится в активной разработке. Это не означает, что он «мертв», как утверждают некоторые люди. Это просто означает, что код и проект достаточно развиты, когда для его обслуживания требуется совсем немного.

Но предлагается использовать вместо него mod_wsgi . Это если вы хотите построить все с нуля. Что я предлагаю, вы не должны, если вы не используете это в качестве учебного упражнения.

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

Полный список веб-фреймворков Python доступен здесь , но вот некоторые из них, которые популярны:

  • Django - он считается эквивалентом Ruby on Rails для Python и довольно трудоемок, поэтому не подойдет для того, что вам нужно.
  • Колба - это микрорамка. То есть он маленький, не мешает вам и идеально подходит для небольших проектов, в которых не требуется много батарей.
  • Пирамида - Она построена той же группой людей, которые построили пилоны, которые не являются несуществующими. Это где-то между Flask и Django - может использоваться как замена для любого.
  • Бутылка - это еще одна микрорамка, и она еще более минимальна, чем колба. Это всего лишь один файл и не имеет никаких зависимостей (если вы используете встроенный шаблонизатор), кроме стандартной библиотеки, так что было бы хорошо подходит для того, что вы хотите.
  • Web.py - когда-то работал Reddit (который был переписан с новыми инструментами после приобретения).
  • webapp2 - это стандартный фреймворк для Google App Engine (хотя вы можете использовать и другие фреймворки там).

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

Кроме того, вам понадобится шаблонизатор - для сборки вашего HTML. Jinja2 , созданный теми же парнями, которые делают Flask, и довольно широко используется. Но если исходить из phpвеб-разработки, вы можете найти использование Mako более естественным, что тоже довольно популярно.

Вот более полный список вопросов по разработке на Python Web - FAQ по Python: Webdev .

elssar
источник
1
У меня есть небольшой проект Flask, который теперь работает с FastCGI и lighttpd на тестовой машине, он должен работать и на сервере. Большое спасибо!
Мартин Уединг
1

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

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

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

Есть также много доступных готовых основных тем в Интернете, просто поищите в Google Theme для Списка каталогов Apache2, что сделает его адаптивным, что не составит труда.

Вот некоторая информация, как изменить внешний вид Apache по умолчанию

И вот некоторые готовые шаблоны, чтобы проверить, есть еще много ....

Репос Стиль

Recurser

индексы

Саймон Хейтер
источник
Это, кажется, решает начальную проблему довольно хорошо. Я думал, что смогу использовать это как первый проект для перехода с PHP на Python. Если проект Python остановится, я посмотрю на это. Спасибо!
Мартин Уединг
Добро пожаловать;)
Саймон Хейтер