0

シンプルな Web サーバーをローカルで起動し、提供されたばかりの URL でブラウザーを起動したいと考えています。これはぜひ書きたいことで、

from wsgiref.simple_server import make_server
import webbrowser

srv = make_server(...)
srv.blocking = False
srv.serve_forever()
webbrowser.open_new_tab(...)
try:
  srv.blocking = True
except KeyboardInterrupt:
  pass
print 'Bye'

blocking問題は、 wsgiref シンプル サーバーのオプションを設定する方法が見つからなかったことです。デフォルトではブロックされているため、ブラウザーは停止した後にのみ起動されます。最初にブラウザを起動すると、リクエストはまだ処理されていません。トルネードのような外部サーバーではなく、標準ライブラリの http サーバーを使用することをお勧めします。

4

1 に答える 1

1

制御フローを続行できるように、サーバーでスレッドを生成するか、2 つの Python プロセスを使用する必要があります。

テストされていないコード、アイデアを得る必要があります


class ServerThread(threading.Thread):

    def __init__(self, port):
        threading.Thread.__init__(self)

    def run(self):
        srv = make_server(...)
        srv.serve_forever()

if '__main__'==__name__:
    ServerThread().start()
    webbrowser.open_new_tab(...)
于 2010-10-09T21:20:58.790 に答える