(server.js)
我有以下代码来运行我的服务器 -
var http = require('http' );
 var fs = require('fs');
 var path = require('path');

 http.createServer(function(request,response){& #xA; console.log('request starting ...');

 var filePath ='。'+ request.url;
 if(filePath =='。/')& #xA; filePath ='。/ public / index.html';

 var extname = path.extname(filePath);
 var contentType ='text / html';
 switch(extname){
 case'.js':
 contentType ='text / javascript';
 break;
 case'.json':
 contentType =' application / json';
 break;
}

 fs.readFile(filePath,function(error,content){
 if(error){
 if(error.code =='ENOENT'){
 fs.readFile('./ 404.html',function(error,content){
 response.writeHead(200,{'Content-Type ': C ontentType});
 response.end(content,'utf-8');
 });
 }
别的{
 response.writeHead(500);
 response.end('500 Internal Server error:'+ error.code +'.. \ n');
到Response.End(); 
 }
 }
别的{
 response.writeHead(200,{'Content-Type':contentType});
 response.end(content,'utf-8');
 }
 });

})。listen(8000);
 console.log('服务器运行在http:// localhost:8000 /');



 (index.html)
我公共目录中的index.html文件如下:
<!doctype html>

< html>
< head>
 < meta charset =“utf-8”>
 < script type =“text / javascript”src =“./ jquery.js”>< / script>
 < script type =“text / javascript”src =“./ algebra.js”>< / script>
 < script type =“text / javascript”src =“./ math.js”>< / script> 

 <脚本>
 //更多代码...
 function runPythonCode(x,y){
 //处理python文件并获得结果
 }
 runPythonCode(2,3);
 < /脚本>
 < / body>
< / html>



 在 runPythonCode
函数中的上述代码中我想将变量 x
和 y
传递给我的python代码并使用 x
和 y
进行一些处理并且想要值返回到javascript。
我只是在index.html中的脚本标记中尝试这样,只是为了检查python脚本是否正在运行 -


 text =“hello”
 $ .ajax({
 type:“GET”,
 url:“。/ app.py”,
 // data:{param:text}
 success:function(响应){
 console.log(响应);
},
错误:函数(错误){
 console.log(错误);
}&#xA ;})



 我的 aap.py
python代码 -
导入csv
来自numpy导入矩阵

 def main():
 x = 2
返回x
 if __name__ ==“__ main __”:
 x = main()



 但是在运行此代码后,我只是在控制台中获取整个python代码。
我是什么在这做错了?如何在js中运行python文件?

答案 0 :(得分:2)
有一个名为brython的工具,它允许您在html文件的脚本标记内添加python 3代码。
但是,我认为它可以通过将您的python代码转换为javascript并让浏览器使用来实现。这是一个python脚本的示例:
<script type="text/python">
"""Code for the clock"""
import time
import math
from browser import document
import browser.timer
sin, cos = math.sin, math.cos
width, height = 250, 250 # canvas dimensions
ray = 100 # clock ray
background = "#111"
digits = "#fff"
border = "#333"
def needle(angle, r1, r2, color="#000000"):
"""Draw a needle at specified angle in specified color.
r1 and r2 are percentages of clock ray.
"""
x1 = width / 2 - ray * cos(angle) * r1
y1 = height / 2 - ray * sin(angle) * r1
x2 = width / 2 + ray * cos(angle) * r2
y2 = height / 2 + ray * sin(angle) * r2
ctx.beginPath()
ctx.strokeStyle = "#fff"
ctx.moveTo(x1, y1)
ctx.lineTo(x2, y2)
ctx.stroke()
</script>
答案 1 :(得分:1)
浏览器支持的唯一客户端脚本语言是JavaScript。 Python不适合网络。
如果您有兴趣在服务器端使用python:https://www.djangoproject.com/
答案 2 :(得分:0)
您的node.js HTTP服务器配置为不执行python脚本;因此,它们以纯文本形式发送给呼叫者。
在node.js服务器中,您可以使用.bs-tooltip-top .arrow,
.bs-tooltip-bottom .arrow {
margin-left: -6px;
}
.bs-tooltip-left .arrow,
.bs-tooltip-right .arrow {
margin-top: -6px;
}
模块执行python,如下所示:How to call python script from NodeJs
然而,仍然会被警告!永远不要执行来自或可能被您的网站访问者更改的代码。