在 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()
你的问题很宽泛,但是可以通过多种方式解决。
你需要:
- 一个域名
- 面向互联网的地址
- 主机能够 运行 python
- 关于网络工作原理的一些知识
由于它可能会变得复杂,我建议您改用 PaaS(例如:Heroku,请参阅 here,已在 SO 上回答)来使用您的代码。
恕我直言:不要在生产场景中使用此代码。如果这不仅仅是一次个人实验,我建议您信任不同的设置,例如 HOWTO Use Python in the web or in the Heroku tutorial 中所述。
我在 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()
你的问题很宽泛,但是可以通过多种方式解决。
你需要:
- 一个域名
- 面向互联网的地址
- 主机能够 运行 python
- 关于网络工作原理的一些知识
由于它可能会变得复杂,我建议您改用 PaaS(例如:Heroku,请参阅 here,已在 SO 上回答)来使用您的代码。
恕我直言:不要在生产场景中使用此代码。如果这不仅仅是一次个人实验,我建议您信任不同的设置,例如 HOWTO Use Python in the web or in the Heroku tutorial 中所述。