【问题标题】:How to pass variable from python to javascript如何将变量从python传递到javascript
【发布时间】:2015-02-03 03:09:39
【问题描述】:

我在 python 中有一个服务器来处理一个 id(youtube 视频的 id),这是代码:

class MessageHandler(tornado.web.RequestHandler): 
  def get(self, action_id): 
    print "Message = " + action_id 

    if action_id == "id":
        for ws in opened_ws: 
            ws.write_message("ID: " + action_id)
            return render_template('js/player.js', action_id=json.dumps(action_id))
(...)

我使用返回的render_template将“action_id”传递给player.js,这是一个使用Youtube API处理电影的函数,代码是:

var PushPlayer = (function () {

    var player = null;

    function new_player() {
        player = new YT.Player('yt-player', {
            videoId: action_id,
            }
        });
    }

(...)

使用action_id,我可以拥有youtube 视频的所有ID.. 但我不知道谁将action_id 从python 传递到javascript.. 有什么想法吗?

谢谢!

【问题讨论】:

    标签: javascript python api youtube server


    【解决方案1】:

    您似乎正在使用 Tornado。您可以在 Tornado template 中编写原始 Python。在这种情况下,您的 player.js 文件是 Tornado 模板。你会想像这样更新它:

    var PushPlayer = (function () {
    
    var player = null;
    
    function new_player() {
        player = new YT.Player('yt-player', {
            videoId: {{ action_id }},
            }
        });
    }
    

    双花括号内的东西将被 Tornado 评估为 Python。

    【讨论】:

      【解决方案2】:

      如果您使用的是 Flask 之类的 Python 框架,则可以使用 Jinja2 之类的模板引擎访问action_id 的值(请参阅http://flask.pocoo.org/docs/0.10/quickstart/#rendering-templates)。

      否则,要使用 javascript 访问action_id,您可以使用 AJAX 调用,这是对 Python Web 服务器的异步 javascript 请求(请参阅http://api.jquery.com/jquery.ajax/)。请注意,.ajax 调用是 JQuery 库的一部分,但也可以不使用它。

      【讨论】:

        猜你喜欢
        • 2016-03-29
        • 2019-11-08
        • 1970-01-01
        • 2017-10-23
        • 2011-04-02
        • 2010-11-02
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多