15

web.pyでリスニングアドレスとポートを指定するにはどうすればよいですか?何かのようなもの:

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

編集

デフォルトのweb.pyコマンドライン解析の使用を避けたい

4

4 に答える 4

27

web.pyのAPIドキュメントから:

 モジュールweb.httpserver
    関数runsimple(func、server_address =( '0.0.0.0'、8080))  

WSGIアプリ機能をホストするCherryPyWSGIサーバーを実行します。ディレクトリ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)
于 2013-01-21T18:36:22.867 に答える
18

web.pyの組み込みWebサーバーを使用している場合は、コマンドにポートを追加するだけです。

python app.py 8080

リスニングアドレスを試したことはありませんが、1.2.3.4:8080をフォーマットとして受け入れる可能性があります。

于 2013-01-21T18:29:42.943 に答える
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)

したがって、environ変数を追加することでWebサーバーのポートを設定できます。

import os
os.environ["PORT"] = "80"
于 2016-08-20T12:18:37.153 に答える
4
URLS = ("/", index)

class index:
    def GET:
        ....

if __name__ == "__main__":
     app = web.application(URLS, globals())
     web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))
于 2015-11-13T09:42:15.393 に答える