繁体   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