可以使用JavaScript函数调用Python函数吗? - javascript

我已经浏览了本网站中的其他问题,但是没有一个问题能找到我想要的答案,因为大多数问题都有jQuery,JSON,AJAX的代码(如果我可以在下面的JavaScript函数中使用它,我将使用它),或尝试下载一些文件/程序/框架/软件包来执行此操作,例如Flask,TkInter或Django,我都无法使用。

我需要这样做,不需要额外的文件。

因此,我想做的是获取一个名为“删除”的HTML按钮,以单击另一幅名为gallery.cgi的页面上的图像,而单击“取消”仅重定向至gallery.cgi。 main()可以做到这一点,但是我无法在HTML / JavaScript代码中调用它。我只需要在单击“删除”时调用main()。

这是我要在JavaScript中运行的函数main(),该函数使用名为test_shelf(存储图像目录)和filename.db(存储文件名)的数据库文件(用于持久存储)。使用此功能,它将删除存储在db文件中的最后一个图像。

import cgi, os
import cgitb; cgitb.enable()
import shelve

images = shelve.open('test_shelf.db', writeback = True)
imageTitle = "Armory" # Title of image being deleted
def main():
    db = shelve.open('filename.db', writeback = True)
    try:
      if db['key']:
        alist = db['key']           # read
        _filename = alist[-1]           # last element of list
        images.pop(_filename, None)
        alist.remove(_filename)
        db['key'] = alist           # writeback
        if os.path.exists('pictures/' + _filename): # pictures is where I store the images, so I need to delete them.
          os.remove('pictures/' + _filename)
    finally:
      db.close()

这是我要在其中调用python函数的JavaScript函数。

function deletePicture() {
  // Call main() here, so only clicking "Delete" button can delete an image
  location.href='gallery.cgi';
}

这是HTML中的调用deletePicture()OnClick的代码。名为Delete的按钮在单击时会调用deletePicture(),该按钮应调用main(),它将删除存储在db中的最后一个图像,然后重定向到gallery.cgi。

<p>Are you sure? You want to delete picture [ <b>"""
print imageTitle
print """</b> ].</p>
  <input type = "button" value = "Delete" onClick = "return deletePicture()"/>
  <input type = "button" value = "Cancel" onClick = "location.href='gallery.cgi';"/>

请注意,所有这些都在同一个文件(delete.cgi)中,该文件是Python CGI。所有HTML / JavaScript代码均由python代码打印。
(我无法制作另一个具有main()代码的文件(.py),然后在delete.cgi中对其进行调用,只允许使用一个.cgi文件来执行删除操作。)

参考方案

我认为您可以通过将删除输入连接到gallery.cgi / main /,然后在CGI文件中执行os.environs ['PATH']作为方法来调用main。

HTML:

<input type = "button" value = "Delete" onClick = "location.href='gallery.cgi/main/'"/>

Python(类似):

if os.environs['PATH']:
    path = os.environs['PATH']
    locals()[path]()

如果这是输入的唯一功能,则也可以用链接和href替换其中的任何一个。并且您还想检查os.environs ['PATH']是否可以运行。

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …

打印二维阵列 - javascript

我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…