我有一個Python腳本,我想從瀏覽器中運行,它似乎是的mod_wsgi的路要走,但該方法感覺太重量級的,需要修改腳本爲輸出。我想我想要一個理想的PHP方法。這些腳本不會接受任何輸入,只能在內部網絡上訪問。網絡服務器服務於Python腳本
我在Linux上運行的Apache與已經設立的mod_wsgi,這裏有什麼選擇呢?
我有一個Python腳本,我想從瀏覽器中運行,它似乎是的mod_wsgi的路要走,但該方法感覺太重量級的,需要修改腳本爲輸出。我想我想要一個理想的PHP方法。這些腳本不會接受任何輸入,只能在內部網絡上訪問。網絡服務器服務於Python腳本
我在Linux上運行的Apache與已經設立的mod_wsgi,這裏有什麼選擇呢?
我會去微架構的方法,以防萬一你的要求改變 - 你永遠不知道,它可能最終被一個應用程序,而只是一個基本的轉儲...也許最簡單的(和老式的方式!?)是使用CGI:
sys.stdout
print 'Content-Type: text/plain\n'
把該腳本某處的Apache2可以訪問它(例如你的cgi-bin).py
被添加到Apache的CGI處理程序可是 - 我不認爲反正這將是一個夢幻般的優勢(從長遠來看,至少)
它確實需要短期傾倒,所以這是完美的。 –
@sudo_O我應該注意它雖然沒有測試...但在理論上應該工作(或者至少足夠讓你找到工作的configs /例) –
它的工作....... –
你可以使用任何Python的微框架,能夠快速從服務器上運行你的腳本。大部分都包括他們自己的輕量級服
從cherrypy首頁文檔
import cherrypy
class HelloWorld(object):
def index(self):
# run your script here
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
此外Python提供了必要的工具,做你想做的事,使用HttpServer
其標準庫 基本服務器使用BaseHttpServer:
import time
import BaseHTTPServer
HOST_NAME = 'example.net' # !!!REMEMBER TO CHANGE THIS!!!
PORT_NUMBER = 80 # Maybe set this to 9000.
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_HEAD(s):
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
def do_GET(s):
"""Respond to a GET request."""
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
s.wfile.write("<html><head><title>Title goes here.</title></head>")
s.wfile.write("<body><p>This is a test.</p>")
# If someone went to "http://something.somewhere.net/foo/bar/",
# then s.path equals "/foo/bar/".
s.wfile.write("<p>You accessed path: %s</p>" % s.path)
s.wfile.write("</body></html>")
if __name__ == '__main__':
server_class = BaseHTTPServer.HTTPServer
httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime(), "Server Starts - %s:%s" % (HOST_NAME, PORT_NUMBER)
try:
httpd.serve_forever()
except KeyboardInterrupt:
pass
httpd.server_close()
print time.asctime(), "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER)
微框架的好處是它們是抽象的滿分作文標題等(但仍應爲您提供一個接口,如果需要的話)
什麼輸出;是否可以使用模板來生成HTML結構並填充元素? –
我應該更清楚它只是純文本,該腳本只是'輸出'stdout'我只是一個快速簡單的方式來顯示通過瀏覽器的輸出。 –