从.py文件中调用.php文件

时间:2012-11-14 21:39:19

标签: php python sendmail

我目前有一些JavaScript代码调用.php文件,使用点击功能从.jsp中向我发送电子邮件。它还包括几个变量,见下文。

<script>
function sendMail(video, user) {
var xmlhttp;
     if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
     } else {// IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     }
     xmlhttp.open("GET", "http://www.mydomain.com/sendemail.php?video="+video+"&user="+user+'&ip=<%= request.getHeader("X-Real-IP") %>', false);
     xmlhttp.send();
}
</script>

在.jsp文件中调用脚本:

            <a href="${videoUrl}" target="main" onclick="sendMail(parentElement.parentElement.getElementsByTagName('span')[2].attributes['title'].value, '${model.user.username}')">

现在我有一个.py(不同的应用程序而不是上面的)文件,我想称之为sendMail函数。我想在.py文件中调用sendMail函数的部分

def play(self, song_id):
    Addon.log('play: ' + song_id)
    if Addon.get_setting('transcode') == 'true':
        bitrate = self.bitrates[int(Addon.get_setting('bitrate'))]
        Addon.resolve_url(self.build_rest_url('stream.view', 
                                              {'id': song_id,
                                               'maxBitRate': bitrate}))
    else:
        Addon.resolve_url(self.build_rest_url('download.view', 
                                              {'id': song_id}))

现在无论如何都要在python文件中完成这个sendMail函数吗?我可以调用URL来代替使用该函数吗?

我弗兰肯斯坦是一个webapp我正在运行给我发电子邮件通知,我发现最简单的方法是创建JavaScript函数,然后调用一些PHP来发送电子邮件。现在python是一个不同的应用程序,只是试图弄清楚如何做同样的事情,调用URL发送电子邮件,但使用Python。

2 个答案:

答案 0 :(得分:0)

直接从Python代码调用PHP代码并不简单,但如果我理解您的情况,那么您真正想要做的就是向服务器发送HTTP请求,对吧?您发送该HTTP请求的服务器正在运行PHP应用程序,但这根本与您的Python代码无关?

只需import urllib2。将URL构造为字符串(与Javascript的执行方式类似,或者使用字典和urllib2.urlencode()使用更高级的功能)。然后是urllib2.urlopen(url)

答案 1 :(得分:0)

要调用网址,请尝试urllib2模块,例如:

>>> import urllib2
>>> f = urllib2.urlopen('http://www.python.org/')
>>> print f.read(100)

要发送电子邮件,请尝试以email module开头的any of these examples

要在同一台机器上启动外部进程(例如php脚本),请尝试SubProcess模块