0

現在、.php ファイルを呼び出して、オンクリック機能を使用して .jsp 内から電子メールを送信する JavaScript コードがあります。また、いくつかの変数も含まれています。以下を参照してください。

<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}')">

これで、この sendMail 関数を呼び出したい .py (上記とは異なるアプリケーション) ファイルができました。.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}))

とにかく、このsendMail関数をpythonファイル内から実行する方法はありますか? 関数を使用する代わりに URL を呼び出すことはできますか?

通知を電子メールで送信するために実行しているWebアプリケーションをFrankensteinします。最も簡単な方法は、JavaScript関数を作成し、PHPを呼び出して電子メールを送信することでした。これで、Python はまったく別のアプリになりました。同じことを行う方法を見つけようとしているだけです。URL を呼び出して電子メールを送信しますが、Python を使用します。

4

2 に答える 2

0

URLを呼び出すには、urllib2モジュールを試してください。例:

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

電子メールを送信するには、これらの例のいずれかで始まる電子メールモジュールを試してください。

同じマシンで外部プロセス(phpスクリプトなど)を起動するには、SubProcessモジュールを試してください

于 2012-11-14T22:07:25.227 に答える
0

PHP コードを Python コードから直接呼び出すのは簡単ではありませんが、私があなたの状況を正しく理解していれば、ここで本当にやりたいことは、HTTP 要求をサーバーに送信することだけですよね? たまたま、その HTTP リクエストを送信しているサーバーが PHP アプリケーションを実行しているのに、それはあなたの Python コードとはまったく関係がないということはありませんか?

ただimport urllib2。URL を文字列として構築します (Javascript と同様の方法で、または辞書と を使用したより高度な機能を使用してurllib2.urlencode())。それからurllib2.urlopen(url)

于 2012-11-14T22:03:25.360 に答える