Pergunta

Eu quero começar um simples script Python "Olá mundo" página web para ser executado no Windows Vista / Apache mas bateu paredes diferentes. Estou usando WAMP. Eu instalei mod_python e os shows de módulo, mas eu não tenho certeza do que eu deveria fazer em p.ex. http.conf (coisas como AddHandler mod_python .py quer me levar para um arquivo não encontrado, ou proibido, ou módulo não encontrado erros ao acessar http: //localhost/myfolder/index.py ). Posso obter mod_python.publisher ao trabalho, mas que eu "quero" este / preciso disso?

alguém pode ajudar?

Obrigado!

Foi útil?

Solução

Fique longe de mod_python. Um comum enganosa idéia é que mod_python é como mod_php, mas para python. Isso não é verdade. WSGI é o padrão para executar aplicações web python, definido por PEP 333 . Portanto, use mod_wsgi .

Ou, em alternativa, usar algum framework web que tenha um servidor. Cherrypy 's é uma boa particularmente. Você será capaz de executar o aplicativo tanto standalone e através mod_wsgi.

Um exemplo de aplicação Olá Mundo usando cherrypy:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

huh Muito fácil? A execução deste aplicativo diretamente em python irá iniciar um servidor web. Configurando mod_wsgi a ele vai fazê-lo rodar apache para dentro.

Outras dicas

Você não precisa mod_python para executar código Python na web, você pode usar a programação CGI simples para executar seu código python, com as instruções no seguinte link: http://www.imladris.com/Scripts/PythonForWindows.html

Isso deve dar-lhe algumas das opções de configuração que você precisa para permitir Python com CGI, e uma pesquisa no Google deve dar-lhe resmas de outras informações sobre a forma de programa nele e tal.

O mod_python é útil se você quiser uma interface um pouco mais "amigável", ou, mais controle sobre o próprio pedido. Você pode usá-lo para criar filtros de solicitação e outras coisas para o servidor Apache, e com o manipulador de editor que você começa uma maneira mais simples de lidar com os pedidos de páginas web via python.

Os trabalhos de manipulador publisher por URLs mapeamento para Python objetos funções /. Isto significa que você pode definir uma função chamada 'foo' em seu arquivo de python, e qualquer solicitação para http: // localhost / foo chamaria essa função automaticamente. Mais informações aqui: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html

Quanto à configuração do Apache para tornar as coisas trabalho, algo como isso deve atendê-lo bem

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

Se você tem / var / www / html / configurado como raiz do seu servidor web e ter um arquivo chamado index.py no python / diretório lá, então qualquer pedido de http:. // localhost / python / foo deve chamar a função foo () em index.py, ou falhar com um 404 se ela não existe

AddHandler mod_python .py

Você set 'PythonHandler'?

Estes dias, considere usar WSGI em vez de interfaces de mod-python nativas para mais ampla opções de implantação. Quer através do apoio WSGI de mod-python, ou, talvez melhor, mod-wsgi. (CGI através, por exemplo. Wsgiref também irá funcionar bem e é fácil de se configurar em um ambiente de desenvolvimento onde não se preocupam com o seu desempenho lixo.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top