Domanda

Voglio ottenere un semplice Python " ciao mondo " script di pagine Web da eseguire su Windows Vista / Apache ma su pareti diverse. Sto usando WAMP. Ho installato mod_python e il modulo mostra, ma non sono sicuro di cosa dovrei fare ad es. http.conf (cose come AddHandler mod_python .py mi portano in un file non trovato, o in un proibito, o errori modulo non trovato quando si accede a http: //localhost/myfolder/index.py ). Posso far funzionare mod_python.publisher , ma io " voglio " questo / bisogno di questo?

Qualcuno può aiutare?

Grazie!

È stato utile?

Soluzione

Stai lontano da mod_python . Un'idea fuorviante comune è che mod_python è come mod_php , ma per Python. Quello non è vero. Wsgi è lo standard per l'esecuzione di applicazioni Web Python, definito da PEP 333 . Quindi usa mod_wsgi invece.

O in alternativa, utilizzare un framework Web con un server. quello di Cherrypy è particolarmente buono. Sarai in grado di eseguire la tua applicazione sia in modalità standalone sia attraverso mod_wsgi .

Un esempio di applicazione Hello World che utilizza 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()

Molto facile eh? L'esecuzione di questa applicazione direttamente su Python avvierà un server web. La configurazione di mod_wsgi lo farà funzionare all'interno di apache.

Altri suggerimenti

Non è NECESSARIO mod_python per eseguire il codice Python sul Web, è possibile utilizzare una semplice programmazione CGI per eseguire il codice Python, con le istruzioni nel seguente link: http://www.imladris.com/Scripts/PythonForWindows.html

Questo dovrebbe darti alcune delle opzioni di configurazione necessarie per abilitare Python con CGI, e una ricerca su Google dovrebbe darti risme di altre informazioni su come programmare in esso e simili.

Mod_python è utile se vuoi un po 'più "amichevole" interfaccia o un maggiore controllo sulla richiesta stessa. Puoi usarlo per creare filtri di richiesta e altre cose per il server Apache e con il gestore del publisher puoi ottenere un modo più semplice di gestire le richieste di pagine Web tramite Python.

Il gestore editore funziona mappando gli URL su oggetti / funzioni di Python. Ciò significa che puoi definire una funzione denominata 'foo' nel tuo file python e qualsiasi richiesta a http: // localhost / foo chiamerebbe quella funzione automaticamente. Maggiori informazioni qui: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html

Per quanto riguarda la configurazione di Apache per far funzionare le cose, qualcosa del genere dovrebbe essere utile

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

Se hai / var / www / html / impostato come root del tuo server web e hai un file chiamato index.py nella directory python /, allora qualsiasi richiesta a http: // localhost / python / foo dovrebbe chiamare la funzione foo () in index.py, o fallire con un 404 se non esiste.

  

AddHandler mod_python .py

Hai impostato 'PythonHandler'?

In questi giorni, considera l'utilizzo di WSGI invece delle interfacce mod-python native per opzioni di distribuzione più ampie. Tramite il supporto WSGI di mod-python o, forse meglio, mod-wsgi. (Anche CGI, ad es. Wsgiref, funzionerà bene ed è facile installarlo in un ambiente di sviluppo in cui non ti interessano le prestazioni della spazzatura.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top