web.py - 指定地址和端口

Jak*_* M. 15 python web.py

如何在web.py中指定监听地址和端口?就像是:

web.application( urls, host="33.44.55.66", port=8080 )
Run Code Online (Sandbox Code Playgroud)

编辑

我想避免使用默认的web.py命令行解析

sid*_*idi 23

来自web.py的 API 文档:

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

运行承载WSGI app func的CherryPy WSGI服务器.静态目录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)
Run Code Online (Sandbox Code Playgroud)


小智 17

如果您使用的是web.py的内置Web服务器,则只需将该端口附加到命令:

python app.py 8080
Run Code Online (Sandbox Code Playgroud)

我没有尝试使用收听地址,但也许它会接受1.2.3.4:8080作为格式.


Pra*_*165 7

URLS = ("/", index)

class index:
    def GET:
        ....

if __name__ == "__main__":
     app = web.application(URLS, globals())
     web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))
Run Code Online (Sandbox Code Playgroud)


小智 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)
Run Code Online (Sandbox Code Playgroud)

所以,您可以通过添加environ变量来设置Web服务器端口:

import os
os.environ["PORT"] = "80"
Run Code Online (Sandbox Code Playgroud)