[英]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)")
您可以GET
或POST
到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.