【问题标题】:Passing JavaScript variable to Python将 JavaScript 变量传递给 Python
【发布时间】:2010-05-24 05:34:38
【问题描述】:

例如:

#!/usr/bin/python
print "This is python."

print "<script type="text/javascript">
          var pass_to_python = new Number(7)
       </script>"

the_number = pass_to_python???

如何在python中获取pass_to_python?

【问题讨论】:

    标签: javascript python


    【解决方案1】:

    使用 pyv8,您可以在 Python 中执行 javascript。

    import PyV8
    
    class Global(PyV8.JSClass):
        pass
    
    with PyV8.JSContext(Global()) as ctxt:
        the_number = ctxt.eval("var pass_to_python = new Number(7)")
    

    http://code.google.com/p/pyv8/

    【讨论】:

    • 对不起,我听不懂你在说什么。
    • 我看到的一种奉承形式,仅此而已。
    【解决方案2】:

    您可以GETPOST 到 Python 脚本。如果需要动态执行此操作,可以使用 AJAX。

    这是一个很好的链接:How are POST and GET variables handled in Python?

    【讨论】:

      【解决方案3】:

      我正在使用flask和ajax将值从javacript传递给python

      function pass_values() {
         var pass_to_python = new Number(7)
      
                      $.ajax(
                      {
                          type:'POST',
                          contentType:'application/json;charset-utf-08',
                          dataType:'json',
                          url:'http://127.0.0.1:5000/pass_val?value='+pass_to_python ,
                          success:function (data) {
                              var reply=data.reply;
                              if (reply=="success")
                              {
                                  return;
                              }
                              else
                                  {
                                  alert("some error ocured in session agent")
                                  }
      
                          }
                      }
                  );
      }
      

      蟒蛇:

      @app.route('/pass_val',methods=['POST'])
      def pass_val():
          name=request.args.get('value')
          print('name',name)
          return jsonify({'reply':'success'})
      

      【讨论】:

        【解决方案4】:

        HTTP 是一个简单的请求-响应协议,它不允许您在中途暂停并等待来自客户端的更多信息——而且由于您的 JS 在浏览器中运行(JS 可以在服务器上运行,但大多数人如果他们不需要代码在浏览器中运行,就不会尝试这样做,所以我假设使用服务器端 JS 是不可能的)并且 Python 在服务器上运行,这就是你需要的你的代码可以工作(以及修复你在 Python 代码中嵌套的损坏的引号)。

        您需要加载完整的文档,然后发出新的 HTTP 请求。

        这可能涉及设置 JS location.href (making sure you have a fallback for non-JS clients),可能涉及使用 XMLHttpRequest 异步加载新数据,最好使用另一种技术(很难确定,因为您的示例也简化了很多to tell what X is)

        【讨论】:

          猜你喜欢
          • 2021-04-16
          • 2018-12-03
          • 2014-07-31
          • 1970-01-01
          • 2018-09-23
          • 2012-01-28
          • 2012-10-24
          • 2021-04-21
          • 2019-03-24
          相关资源
          最近更新 更多