브라우저에서 실행하고 싶은 Python 스크립트가 있습니다. mod_wsgi가 너무 길어 보이지만 방법이 너무 무겁고 스크립트 수정이 필요할 것입니다. 산출. 이상적인 PHP 접근 방식을 원합니다. 스크립트는 입력을받지 않으며 내부 네트워크에서만 액세스 할 수 있습니다.웹 서버에서 파이썬 스크립트를 제공합니다
mod_wsgi가 이미 설정된 Linux에서 아파치를 실행 중이며, 여기에있는 옵션은 무엇입니까?
브라우저에서 실행하고 싶은 Python 스크립트가 있습니다. mod_wsgi가 너무 길어 보이지만 방법이 너무 무겁고 스크립트 수정이 필요할 것입니다. 산출. 이상적인 PHP 접근 방식을 원합니다. 스크립트는 입력을받지 않으며 내부 네트워크에서만 액세스 할 수 있습니다.웹 서버에서 파이썬 스크립트를 제공합니다
mod_wsgi가 이미 설정된 Linux에서 아파치를 실행 중이며, 여기에있는 옵션은 무엇입니까?
요구 사항이 변경 될 경우를 대비하여 마이크로 프레임 워크 접근 방식을 사용합니다. 어딘가 아파치가 액세스 할 수있는 스크립트를 넣어 sys.stdout
print 'Content-Type: text/plain\n'
를 스크립트 복제 및 포함
.py
아파치 CGI 처리기에 추가되어 있는지 확인하지만 - 어쨌든이 (적어도 장기적으로)
이것은 단기간 덤프 일 필요가 있으므로 완벽합니다. –
@sudo_O 나는 테스트를 거치지 않았다는 것에주의해야한다. 그러나 이론적으로는 (적어도 작동하는 configs/examples을 찾을 정도로 충분하다) –
작동한다 ....... –
파이썬의 마이크로 프레임 워크를 사용하여 서버에서 스크립트를 빠르게 실행할 수 있습니다. 대부분은 자체 경량 서버를 포함합니다. 또한 파이썬 HttpServer
사용하여 표준 라이브러리 당신이 원하는 일을하는 데 필요한 도구를 제공합니다
import cherrypy
class HelloWorld(object):
def index(self):
# run your script here
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
cherrypy 홈 페이지 문서에서
는 기본 서버는 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 구조 생성 및 요소 채우기를 사용할 수 있습니까? –
나는 그것이 단지 일반 텍스트 일 것임에 틀림 없어야했다. 스크립트는'print'를'stdout'에 사용했다. 브라우저를 통해 출력물을 표시하는 빠르고 간단한 방법이었다. –