Як використовувати 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 - Це вважається еквівалентом Python Ruby on Rails, і він є досить важким, тому не підходить для того, що вам потрібно.
  • Колба - це мікрокадр. Тобто він невеликий, не заважає вам, і ідеально підходить для менших проектів, які не потребують багато батарей.
  • Піраміда - Вона побудована тією ж групою людей, яка побудувала Пілони, яка не є нероздільною. Він знаходиться десь між колбою і Джанго - може використовуватися як заміна будь-якого.
  • Пляшка - це ще один мікрокадр, і він навіть мінімальніший, ніж колба. Це лише один файл і не має залежностей (якщо ви використовуєте вбудований двигун шаблонів), крім стандартної бібліотеки, тому було б добре підходити до того, що ви хочете.
  • Web.py - колись працює Reddit (який був переписаний новими інструментами після придбання).
  • webapp2 - це стандартний фреймворк для Google App Engine (хоча там можна використовувати й інші рамки).

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

Також вам знадобиться движок шаблонів - для збирання вашого html. Jinja2 , побудований тими самими хлопцями, які роблять колбу, і досить широко використовується. Але виходячи з phpвеб-розробки, ви можете виявити, що використання Mako є більш природним, що теж досить популярно.

Ось більш вичерпний фейк щодо розробки веб-сайтів Python - FAQ FAQ: Webdev .


1
У мене є невеликий проект Flask, який зараз працює з FastCGI und lighttpd на тестовій машині, він також повинен працювати на сервері. Дуже дякую!
Мартін Удінг

1

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

Якщо це правда, то вам не потрібно буде йти, хоча стільки циклів, щоб щось налаштувати.

Apache2 дозволяє редагувати головний каталог списків файлів, щоб ви могли стилізувати його в будь-якому разі.

Також є багато доступних готових основних тем в Інтернеті, просто шукайте в Google тему для каталогу Apache2 Directory List, що робить його чуйним, теж не складе труднощів.

Ось деякі відомості про те, як змінити зовнішній вигляд Apache

І ось кілька готових шаблонів, щоб перевірити, є ще багато….

Стиль Репос

Рекурсор

Індекси


Це, здається, вирішує початкову проблему досить добре. Я подумав, що можу використовувати це як перший проект для переходу з PHP на Python. Якщо проект Python зупиниться, я погляну на це. Дякую!
Мартін Удінг

Ваш прийом;)
Саймон Хейтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.