Форум сайта python.su
Есть сервер Apache с установленным mod_wsgi, есть пример простого скрипта, взятый из книги:
import cgi
def subscribe_app(environ, start_response):
fields = cgi.FieldStorage(environ['wsgi.input'],
environ=environ)
name = fields.getvalue(“name”)
email = fields.getvalue(“email”)
status = “200 OK”
headers = [(‘Content-type’,’text/plain’)]
start_response(status, headers)
response = [
'Hi %s. Thank you for subscribing.' % name,
'You should expect a response soon.'
]
return (line.encode(‘utf-8’) for line in response)
Офлайн
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту
PS: Какие-то кавычки странные…
Отредактировано (Май 24, 2011 16:50:42)
Офлайн
pillСпасибо за ссылку, почитаю вечером. Я правильно понял, что доступ к скрипту потом будет через http://localhost/myapp ?
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту
Офлайн
Да.
Офлайн
Спасибо, с этим разобрался. Еще вопрос, как из HTML-формы передать данные в скрипт? Например из такой:
<form method=POST action=???>
<input type=text name=text value="Default" size=40>
<input type=submit value="Отправить">
</form>
Офлайн
> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?
Офлайн
o7412369815963Браузер просто отображает исходный текст скрипта.
> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?
Офлайн
значит wsgi не настроен.
вот рабочий пример apache+wsgi
Офлайн
o7412369815963Вот конфиг из /etc/apache2/sites-available/default, вроде как в примере, может я чего не так сделал:
значит wsgi не настроен.
вот рабочий пример apache+wsgi
<VirtualHost *:80>
ServerName www.mytest.com
ServerAlias mytest.com
ServerAdmin webmaster@mytest.com
DocumentRoot /var/www/mytest.com
<Directory /var/www/mytest.com>
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /myapp /var/www/mytest.com/wsgi-scripts/myapp.wsgi
<Directory /var/www/mytest.com/wsgi-scripts>
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<html>
<head><title>mytest.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body><h1>The First Page</h1>
<form method=POST action=/wsgi-scripts/myapp.wsgi>
<input type=text name=text value="Default" size=40>
<input type=submit value="Отправить">
</form>
</body></html>
Офлайн
у тебя скрипт настроен на url: /myapp
а отправляешь пост запрос на /wsgi-scripts/myapp.wsgi
поэтому он тебе и выдает исходник.
Офлайн