簡體   English   中英

將 JavaScript 變量傳遞給 Python

[英]Passing JavaScript variable to Python

例如:

#!/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?

使用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/

您可以GETPOST到Python腳本。 如果您需要動態執行此操作,則可以使用AJAX。

這是一個很好的鏈接: 如何在Python中處理POST和GET變量?

我正在使用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'})

HTTP是一個簡單的請求 - 響應協議,它不允許您暫停中間流並等待來自客戶端的更多信息 - 並且因為您的JS在瀏覽器中運行(JS可以在服務器上運行,但大多數人不會嘗試這個,如果他們不需要代碼在瀏覽器中運行,所以我假設使用服務器端JS是不可能的)並且Python在服務器上運行,這就是你的代碼所需要的工作(以及修復嵌套在Python代碼中的損壞的引用)。

您需要加載完整的文檔,然后發出新的HTTP請求。

這可能涉及讓JS設置location.href確保你有非JS客戶端的后備 ),它可能涉及使用XMLHttpRequest異步加載新數據,最好使用另一種技術(很難肯定地說)因為你的例子簡化太多了,不知道X是什么

I think using JSON is the best way.you can create a JSON file as intermidiary between JavaScript and Python, both languages can access and modify JSON file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM