如何在web.py中指定收听地址和端口?类似的东西:
web.application( urls, host="33.44.55.66", port=8080 )
修改
我想避免使用默认的web.py命令行解析
答案 0 :(得分:23)
来自web.py的API文档:
module web.httpserver function runsimple(func,server_address=('0.0.0.0', 8080))
运行承载WSGI app func的CherryPy WSGI服务器。静态/静态托管目录。
示例代码
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)
答案 1 :(得分:15)
如果你正在使用web.py的内置网络服务器,你可以将端口附加到命令:
python app.py 8080
我没有尝试使用收听地址,但也许它会接受1.2.3.4:8080作为格式。
答案 2 :(得分:5)
你可以在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)
因此,您可以通过添加环境变量来设置Web服务器端口:
import os
os.environ["PORT"] = "80"
答案 3 :(得分:2)
if __name__ == "__main__":
web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))