2013-01-21 12 views

risposta

22

Da API docmentation di web.py:

module web.httpserver 
    function runsimple(func,server_address=('0.0.0.0', 8080))

in esecuzione il server di hosting WSGI CherryPy WSGI applicazione func. La directory static/è ospitata staticamente.

codice di esempio

import web 

class MyApplication(web.application): 
    def run(self, port=8080, *middleware): 
     func = self.wsgifunc(*middleware) 
     return web.httpserver.runsimple(func, ('0.0.0.0', port)) 

if __name__ == "__main__": 
    app = MyApplication(urls, globals()) 
    app.run(port=8888) 
12

Se stai usando web.py di built-in server web, si può basta aggiungere la porta al comando:

python app.py 8080 

non ho provato mai con l'indirizzo di ascolto, ma forse la volontà di accettare 1.2.3.4:80 80 come il formato.

+0

Vai od intuizione, accetta anche l'indirizzo. Anche se, mi piacerebbe usare il mio parsing della riga di comando e non mischiarlo con il parser di riga di comando web.py predefinito –

+0

Intendi eseguirlo da un server web 'normale' come Apache o qualcosa del genere? In questo caso, dovrai giocare con la configurazione di Apache per determinare quale indirizzo/porta combo dovrebbe puntare al tuo script. – Dan

2
if __name__ == "__main__": 
    web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888)) 
3

si può vedere il codice seguito in wsgi.py:

server_addr = validip(listget(sys.argv, 1, '')) 
if os.environ.has_key('PORT'): # e.g. Heroku 
    server_addr = ('0.0.0.0', intget(os.environ['PORT'])) 

return httpserver.runsimple(func, server_addr) 

modo, è possibile impostare la porta del server web variabile add environ:

import os 
os.environ["PORT"] = "80" 
Problemi correlati