【问题标题】:Is there any alternative to implement javascript`s onClick() function in pure python?有没有其他方法可以在纯 python 中实现 javascript`s onClick() 函数?
【发布时间】:2013-09-14 15:46:34
【问题描述】:

简而言之:我正在寻找的是获取 img src 值 onClick() 并将所选图像传递给 python 函数以使用 PIL

说,var i = getElementById("image-id").src pass this to python def whatever(): img = src var from js fun

有可能吗?我知道这是可以做到的>>>

def post(self):
    val = self.request.get("name_of_the_txt_field_to_get")
    self.request.write("val") 

但我希望变量是带有 onClick() 的图像 SRC;按钮函数,我想将这个 SRC 值作为变量传递给 python 函数。

我知道 js 是客户端而 python 是服务器端,所以我希望将值传递给另一个 URL,例如从 http://localserverhttp://localserver/image

我一直在寻找解决方案,我确实遇到了一些选项:https://github.com/atsepkov/RapydScript(但它是一个 python 到 javascript 的编译器,我需要编译它)

另一个是好老的http://code.google.com/p/pyv8/,但我想不通&

这似乎很有趣PICO & 我认为可以完成工作,但是我不知道如何在 GAE 上运行它

工作区: 带有 Jinja2 模板的 Python 的 GAE。

【问题讨论】:

    标签: javascript python google-app-engine pyv8


    【解决方案1】:

    您可以使用 jQuery 向http://localserver/image 发送 AJAX POST:

    $(document).ready(function() {
        $("img").click(function() {
            var request = $.ajax({
                url: "/image",
                type: "POST",
                data: {imageSrc : $(this).attr("src")}
            });
    
            request.done(function(msg) {
                alert("Request succeeded: " + msg );
            });
    
            request.fail(function(jqXHR, textStatus) {
                alert( "Request failed: " + textStatus );
            });
        });
    });
    

    另请参阅:Ajax tutorial for post and get

    【讨论】:

    • 是的,我想到了ajax,但只是在想这可以通过python来实现吗?
    • 您在问一个似乎没有意义的问题。你用python做什么是什么意思?那是在服务器上,它怎么可能访问用户浏览器上的dom。只有js在普通用户浏览器上运行。
    • @ZigMandel 是的,我只是想表达我的想法,在 python 中单击 onClick 以获取 img src
    • 抱歉问题还是没有意义。
    【解决方案2】:

    我假设您询问 Javascript 是因为您在 Web 浏览器中运行某些东西。当你在浏览器中运行时,我假设你希望在任何浏览器中运行。

    在这种情况下,答案是否定的,没有。

    浏览器可以执行 Javascript。他们不执行python。因此,您需要在浏览器中执行 Javascript,向您的服务器发出某种 HTTP 请求,然后在 python 中处理该请求。像 pico 这样的库可以生成包装器,因此您必须编写更少的代码,但它在后台执行相同的操作。

    您可以为可以执行 python 的浏览器编写某种插件。已经完成了: https://wiki.python.org/moin/WebBrowserProgramming

    但您将仅限于安装了相应插件的浏览器子集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-22
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多