如何在web.py中指定監聽地址和端口?喜歡的東西:web.py - 指定地址和端口
web.application(urls, host="33.44.55.66", port=8080)
編輯
我想避免使用缺省web.py命令行解析
如何在web.py中指定監聽地址和端口?喜歡的東西:web.py - 指定地址和端口
web.application(urls, host="33.44.55.66", port=8080)
編輯
我想避免使用缺省web.py命令行解析
從web.py API docmentation:
module web.httpserver function runsimple(func,server_address=('0.0.0.0', 8080))
運行CherryPy的WSGI服務器託管WSGI應用FUNC。靜態目錄static /是靜態託管的。
示例代碼
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)
如果您使用web.py內置的Web服務器,你可以剛剛港口附加到命令:
python app.py 8080
我還沒有與監聽地址曾經嘗試過,但也許會接受1.2.3.4:80 80作爲格式。
if __name__ == "__main__":
web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))
你可以看到在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)
是這樣,你可以通過設置附加ENVIRON變量的Web服務器端口:
import os
os.environ["PORT"] = "80"
Go直覺,它也接受地址。雖然,我想使用我自己的命令行解析,不要將它與默認的web.py命令行解析器混合使用 –
您的意思是從像Apache這樣的'普通'webserver運行它嗎?如果是這樣的話,你需要使用Apache配置來確定哪個地址/端口組合應該指向你的腳本。 – Dan