2013-07-17 6 views
0

Я заинтересован в создании довольно простого веб-приложения Python, буквально только формы, которая принимает какой-то ввод, вызывает функцию Python на этом входе, получает результаты, возвращаемые этой функцией, а затем использует обход веб-разработки, чтобы они выглядели красиво. Я видел множество решений, использующих CherryPy, флягу, бутылку, web.py, все из которых великолепны, но я не видел примера, где на самом деле используется Apache. Все они кажутся такой универсальной платформой для веб-серверов, которая для меня полностью переполнена, а не то, что мне нужно. У меня уже есть Apache, поэтому вместо того, чтобы запускать второй веб-сервер и беспокоиться о его запуске, я бы предпочел, чтобы Apache обслуживал мое приложение вместе со всем остальным в течение всего дня.Python + mod_wsgi/mod_python + Apache + public_html пользователя

У нас есть довольно стандартный http://myserver.com/~user/ установки с public_html в /home/user директорий, но для жизни меня я не могу понять, как создать страницу, которая вызывает функцию Python, который подается вверх и имеет код Python на самом деле выполнить при просмотре до http://myserver.com/~user/. Предположим, что на данный момент mod_python или даже mod_wsgi правильно настроен ... что мне нужно сделать на моем конце? Нужно ли мне называть мой скрипт через PHP exec(), который мне поражает необходимость в mod_python в первую очередь, или есть более элегантное решение (которое на самом деле использует mod_python)?

ответ

0

Ваша концепция скриптов python является тотальной ошибкой. Не относиться к ним, как PHP скрипты, где вы можете иметь

<html> 
<?php 
echo "<title>Hello World</title>"; 
?> 
</html> 

mod_php будет разобрать его и выполнить код PHP, чтобы сформировать окончательный HTML-страницы.

Лучше сказать, что у вас есть приложение python, где mod_python и mod_wsgi обеспечивает интерфейс (шлюз) для взаимодействия с вашим приложением.

Меня спрашивали довольно много раз, если можно написать веб-приложение python без рамки. Конечно, вы можете, но вам приходится иметь дело с HTTP-встречами и костями, такими как заголовки и коды ответов. Посмотрите на http://lucumr.pocoo.org/2007/5/21/getting-started-with-wsgi/.

Поэтому я предлагаю использовать фреймворк.

Если вы не хотите путаться с запуском приложения, как, например, deamon, посмотрите эту страницу http://flask.pocoo.org/docs/deploying/mod_wsgi/. В нем показано, как запускать флеш-приложение с apache и mod_wsgi.

+0

Спасибо за ссылки. Я знал, что это не совсем так, как PHP, но из всех этих примеров с фреймворками я знал, что можно вызвать функцию Python, не обернув ее на PHP или даже ajax. Однако один из вопросов, который у меня есть, из этой второй ссылки ... конфигурация является глобальной, не так ли? Итак, эта строка: 'WSGIScriptAlias ​​//var/www/yourapplication/yourapplication.wsgi' нужно будет добавить для каждого приложения для каждого' ~ пользователя', правильно, что-то вроде '/home/user/public_html/yourapplication/yourapplication.wsgi '? – dmn

+1

Просто используйте 'WSGIScriptAliasMatch' https://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIScriptAliasMatch. Таким образом вам не нужно будет настраивать каждое приложение. – twil

+0

GOT IT. Я постараюсь, чтобы наш системный администратор настроил это. Огромное спасибо. :) – dmn