web项目的tomcat+python+cgi

Tomcat服务器的下载和安装,Java环境的配置 略。

1. 你的web项目(比如,YOUR_PROJECT_NAME)应该放在tomcat目录下webapps文件夹中。要运行的python脚本(比如,test.py)应该放在\webapps\YOUR_PROJECT_NAME\WEB-INF\cgi\test.py

test.py内容:

print ("Content-type: text/html\n\n")
print ("Hello, world!\n")

2. 修改tomcat目录下conf/web.xml,将默认注释掉的cgi相关内容去掉注释:

 
        cgi
        org.apache.catalina.servlets.CGIServlet
        
          debug
          0
        
        
          cgiPathPrefix
          WEB-INF/cgi
        
         5

        cgi
        /cgi-bin/*

这样在浏览器中访问http://localhost:8080/YOUR_PROJECT_NAME/cgi-bin/*就会运行\webapps\YOUR_PROJECT_NAME\WEB-INF\cgi\*了。

 

添加servlet参数"executable",修改param-value标签的值为自己安装python目录的python.exe路径。注意自己的python版本。


          executable
          C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe

最终,web.xml的内容应该差不多是这样的:



        cgi
        org.apache.catalina.servlets.CGIServlet
         
		 debug
		 0
		 
        
          cgiPathPrefix
          WEB-INF/cgi
        
       
          executable
          C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe
        
        5
    
 	
        cgi
        /cgi-bin/*
    

 

3. 修改tomcat目录下conf/context.xml,在标签中添加属性 privileged = "true" ,此时,Tomcat才允许web应用使用容器内的Servlet

4. 修改配置文件之后重启tomcat才能生效。然后打开浏览器输入http://localhost:8080/YOUR_PROJECT_NAME/cgi-bin/test.py, 应该就能在浏览器窗口中看到Hello,world!了。

至于在web项目中调用这个python脚本可以通过url: YOUR_PROJECT_NAME/cgi-bin/test.py。比如,如果要用python进行数据处理,可以用ajax将要处理的数据传给python脚本,python处理完之后print到ajax的success返回的数据中。

你可能感兴趣的:(web开发)