web.py - specify address and port

梦想与她 提交于 2019-11-27 15:58:48

问题


How to specify listening address and port in web.py? Something like:

web.application( urls, host="33.44.55.66", port=8080 )

Edit

I would like to avoid using the default web.py command line parsing


回答1:


From API docmentation of web.py:

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

Runs CherryPy WSGI server hosting WSGI app func. The directory static/ is hosted statically.

Example code

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)



回答2:


If you're using web.py's built-in webserver, you can just append the port to the command:

python app.py 8080

I haven't tried ever with the listening address, but perhaps it will accept 1.2.3.4:8080 as the format.




回答3:


you can see the follow code 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)

so, you can set the web server port by add environ variable:

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



回答4:


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


来源:https://stackoverflow.com/questions/14444913/web-py-specify-address-and-port

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!