2013-08-14 1 views
1

그래서 mod_python을 발견했습니다. PHP 코드를 다시 작성하기가 어렵고 Apache를 통해 실행할 수있어서 좋았습니다. 그러나 나는 방금 호스트 서비스 (HostGator)가 a single apache user instance per physical shared server을 가지고 있기 때문에이 모듈을 지원하지 않는다는 것을 알았습니다.일반 웹 플랫폼의 HTML에서 Python을 실행

이 질문 구걸 : 등 장고, 철탑, 같은 것을 사용하지 않고

를 HTML 코드에서 파이썬 루틴의 서버 측을 호출하고 웹 컨텐츠를 반환 한 방법은 무엇입니까?

예 :

간단한 형태

<form name="message" action="directory/pythonscript.py/function" method="POST"> 
, 제출시 양식 양식의 콘텐츠를 구문 분석하고 파이썬 루틴에 따라 새로 조립 된 HTML 파일의 문자열을 반환

양식을 입력하면 브라우저가이를 다시 렌더링합니다.

def function(args): 
    #parse inputs 
    #assemble html string 
    return htmlString 

추가 질문 : mod_python을 가진

, 당신은 적어도 아파치 요청 구조를 가리키는 "REQ"인수를 전달해야합니다. 이 기능은 mod_python 없이도 여전히 존재합니까? 어떻게 든 물리적으로 mod_python없이 매핑 할 수 있습니까?

HostGator does support python과 많은 모듈 (예 : smtpd)이 전자 메일을 보내고 웹을 통해 통신 할 수있는 기능을 가지고 있기 때문에이 모든 작업이 가능하다고 가정합니다. 따라서이 API에 액세스 할 수있는 방법이있을 것입니다 아파치와 독립적?

장고 (Django), 파일론 (Pylons) 등에 대한 검색 결과 중 99 %가 실제로 가장 좋은 방법이라면 그 옵션을 살펴 보겠습니다.하지만 지금 당장하고 싶은 것은 동적 HTML 콘텐츠를 만드는 것입니다. 다른 API를 설치하지 않고도 백엔드 파이썬 처리기를 사용할 수 있습니다.

감사합니다.

편집

내가 전혀 mod_python을 부착하고 있지 않다 명확히해야한다, 내가 발견 뭔가입니다. 내 질문은 표준이 아닌 (표준 = 파이썬 2.7.x, 아파치 또는 다른 방법으로 사용 가능) API, 가능한 경우 API 사용을 피하는 데 중점을 둡니다.

+0

mod_wsgi를 사용하는 것이 훨씬 낫습니다. https://code.google.com/p/modwsgi/ mod_python은 매우 오랫동안 활발한 개발 단계에 들지 않았으며 다른 누군가가 방금 다시 가져온 것처럼 보입니다. 당신이 장고를하고 싶은 것을위한 프레임 워크가 좋다면, 아니면 조금 덜 복잡하고 무언가를 원한다면 Flask http://flask.pocoo.org/ – Cfreak

답변

2

파기가 끝난 후 가장 빠른 방법은 PHP를 통한 것이지만 이전 대답은 아닙니다. 내 HTML에서

나는이 있어야합니다 formAction.php에서

<html> <form name="form" method="$POST" action="formAction.php" </html> 

을 :

$ 리턴이 동적으로 생성 된 HTML 페이지 문자열입니다
<? 

system('python ~/scripts/pythonscript.py/function', $return) 
echo $return 

?> 

. 파이썬 스크립트 내에서 HTML 세션에서 게시 된 값을 어떻게 든 구문 분석해야합니다. 나는 내 질문에 답하는 것 같지만 다른 누군가가 더 재미있는 것을 게시하는지 지켜 볼 것이다.

편집 : 게시 된 값을 구문 분석하는 방법을 알아 냈 : 예를 들어

<?php 

$VAR1 = $_GET["var1"]; 
$VAR2 = $_GET["var2"]; 

system("python <script>.py -args=[".$VAR1.",".$VAR2"."]", $return) 
echo $return 

?> 

.

0

제출시 php.execute ('pythonScript.py')를 할 수 있습니까?

+0

과 함께 갈 수있는 것은 "action"그 자체입니까? 그래서 만약 내가 "action = php.execute ('pythonscript.py')"

거기에, 그 일을 끝낼까요? 결과 페이지를 문자열로 반환해야 할 것입니다. –

+0

[this] (http://stackoverflow.com/questions/7540847/html-button-to-call-php-shell-exec-command/7540895#7540895)에서 코드를 넣을지 모르겠다. 행동이 효과가있다. 나는 PHP에 대한 경험이 거의 없지만 html에 대해 알고있는 것에서 나는 action = php.exec()가 작동 할 것이라고 믿지 않는다. 또한 구문은 exec ("python yourPythonScript.py")입니다. –

+0

오, 당신이 htaaccess에 넣어야 할 라인이 있다고 생각했습니다. "Addhandler cgi-script .py .pl .cgi"는 모든 것을 perl이나 python 또는 무엇으로 시작해야 하는지를 처리했습니다. –

관련 문제