簡體   English   中英

如何在heroku上啟動Python SimpleHTTPServer?

[英]How do I launch Python SimpleHTTPServer on heroku?

我想在heroku上啟動Python HTTPServer。 請注意,這不是Python框架。 該代碼段附在下面。 如何在Heroku上啟動此服務器? 我可以在本地計算機上運行此服務器。 但我希望將其部署在Heroku上。 請提供見解。

服務器代碼:

import http.server
from http.server import HTTPServer, BaseHTTPRequestHandler
import socketserver
import threading

PORT = 5001

class myHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.write("Heroku is awesome")

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
    pass

try:
    server = ThreadedTCPServer(('', PORT), myHandler)
    print ('Started httpserver on port ' , PORT)
    ip,port = server.server_address
    server_thread = threading.Thread(target=server.serve_forever)
    server_thread.daemon = True
    server_thread.start()
    allow_reuse_address = True
    server.serve_forever()

except KeyboardInterrupt:
    print ('CTRL + C RECEIVED - Shutting down the REST server')
    server.socket.close()

當heroku運行您的進程時,它將環境變量PORT定義為您應該向其公開服務器的內部端口。 然后可以從Internet的默認HTTP端口80端口訪問您的服務器。

Python可以使用os.environ訪問環境變量。

因此,您可以使用:
PORT = environ['PORT']

os.envron文檔在這里

您可以在此處閱讀有關Heroku如何處理端口的更多信息。

用一行創建一個Procfile

web: python yourscript.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM