Найти - Пользователи
Полная версия: Работа с wsgi
Начало » Web » Работа с wsgi
1 2 3 4
Paher
Добрый день, уважаемые!

Хочу перенести приложение на mod_wsgi + apache2.2. Приложение довольно простое, получает файл, парсит и заносит в базу. Почитал про технологию wsgi. Теоретически все понятно, но практически возникает несколько вопросов.

1. Не совсем понял, как настраивать httpd.conf. Допустим, у меня есть файл MyWSGI с функцией app(environ, start_response), которая и делает всю работу. В конфиге апача прописываем WSGIScriptAlias / /wsgi/MyWSGI. Как mod_wsgi узнает, что нужно вызывать именно функцию app? Практически все примеры в гугле даются для подключения django, а там, как я понял, есть специальные средства для связи по WSGI. А мне нужно простой скрипт связать.

2. Как я понял, при этой технологии приложение всегда находится в памяти, и при запросе выделяется отдельный процесс для его обработки. В связи с этим возникает вопрос: можно ли при инициализации приложения инициализировать общие для процессов ресурсы. Например, открыть соединение с БД, чтобы его использовали все процессы-потомки. Если можно, то как?

Буду благодарен за примеры, куски конфигов, ссылки на почитать(желательно на русском)
Paher
По поводу первого вопроса понял, функция должна иметь имя application вместо app. Второй вопрос остается в силе
Paher
o7412369815963
пример подключения wsgi скрипта к апаче
судя по примеру все, что вне функции application - это общие настройки для всех процессов и там как раз и можно создать подключение к базе. я правильно понимаю?
o7412369815963
там общие переменные для потоков, а не для процессов, а через wsgi их может быть несколько, т.е. глобальные(на все процессы) переменные тут не поиметь
Paher
Ну, собственно, неправильно выразился. Мне как раз и нужно одно подключение для потоков, а не процессов. а это, как я понял, возможно установить вне функции application. спасибо огромное
Paher
Еще вопрос. Подскажите, пожалуйста, как работать с POST-переменными, переданными по wsgi-протоколу. Нигде не могу найти, как их выцепить их из environ
o7412369815963
Paher
Еще вопрос. Подскажите, пожалуйста, как работать с POST-переменными, переданными по wsgi-протоколу. Нигде не могу найти, как их выцепить их из environ
используй какой-нибудь фреймворк, сейчас ты изобретаешь колесо.
вот например легкий микро фреймворк: http://bottle.paws.de/
а вот пример получения пост параметров: http://bottle.paws.de/page/docs#get-and-post-values

все просто и в 3 строки ;)
Paher
Опытным путем выяснил, что можно работать через стандартный модуль cgi

form = cgi.FieldStorage(fp = environ, environ = environ)
o7412369815963
Paher
Опытным путем выяснил, что можно работать через стандартный модуль cgi
bottle тоже использует эти стандартные модули, он обертка над штатными средствами.
а использовать гораздо удобнее
    query = request.POST['query']
query = request.GET['query']
query = request.COOKIE['query']
ЗЫ: представь как тебе нужно будет извратиться когда придется получить/установить куки или принять файл, а на многих фремвроках это делается одной строкой
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB