在 linux 服务器上托管基于 SimpleHTTPRequest 构建的 python 应用程序

Host a python application built on SimpleHTTPRequest on a linux server

我在 python 中使用 SimpleHTTPRequestHandler 构建了自己的网络服务器。它在我的本地按预期工作,我不想使用任何第三方库。如果我必须将它托管在 Linux 托管服务器上并启动我的 Web 应用程序,是否有可能并且是否有任何示例可以这样做。我在下面提供我的代码,

from User import User
import json
import urllib.parse as urlparse
from urllib.parse import parse_qs

class GetHandler(SimpleHTTPRequestHandler):

        def do_GET(self):
            urlParts = str(self.path).split("?")
            params = urlParts[0].split("/")
            parsed = urlparse.urlparse(self.path)
            self.send_response(200)
            self.send_header('Content-type', 'appplication/json')
            self.end_headers()
            self.wfile.write(bytes(json.dumps(getattr(eval(params[1]), params[2])()), encoding='utf-8'))
            return
            

        def do_POST(self):
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.data_string = self.rfile.read(int(self.headers['Content-Length']))
            data = json.loads(self.data_string)
            print(data)
            data = '<html><body><h1>POST!</h1></body></html>'
            self.wfile.write(bytes(data, encoding='utf-8'))
            return

Handler=GetHandler

httpd=HTTPServer(("localhost", 8081), Handler)
print("Server started on localhost:8081")
httpd.serve_forever()

你的问题很宽泛,但是可以通过多种方式解决。

你需要:

  1. 一个域名
  2. 面向互联网的地址
  3. 主机能够 运行 python
  4. 关于网络工作原理的一些知识

由于它可能会变得复杂,我建议您改用 PaaS(例如:Heroku,请参阅 here,已在 SO 上回答)来使用您的代码。

恕我直言:不要在生产场景中使用此代码。如果这不仅仅是一次个人实验,我建议您信任不同的设置,例如 HOWTO Use Python in the web or in the Heroku tutorial 中所述。