【问题标题】:Brython and python script in a browser浏览器中的 Brython 和 python 脚本
【发布时间】:2017-10-07 07:50:05
【问题描述】:

我尝试使用 Brython。我有一个 Python 脚本 (test.py),我想在浏览器中显示这个脚本的结果。

我试过了:

<html>
<head>
<script src="brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python" src="test.py"></script>
</body>
</html>

我的脚本是:

x = int(input("Value: "))
x = pow(x,2)
print("Result: " + str(x))

很遗憾,我无法在浏览器中显示结果。是不是少了什么?

【问题讨论】:

    标签: python brython


    【解决方案1】:

    在 Brython 中,print 显示在浏览器控制台中。

    如果要将结果写入 HTML 文档:

    from browser import document
    
    x = int(input("Value: "))
    x = pow(x, 2)
    
    document <= "Result: " + str(x)
    

    [edit] 另一种选择是使用write() 方法将sys.stdout 设置为对象,例如模块browser 中的document

    from browser import document
    import sys
    
    sys.stdout = document
    print("Hello", "world !")
    

    【讨论】:

    • 它有效,谢谢。但是,如果我想显示 HTML 文档中的所有内容,无论代码如何,有没有办法做到这一点?
    • 如果问题是如何使用print() 函数显示,就像在标准Python 中一样,您可以将sys.stdout 重定向到使用write 方法的对象,例如模块中的document b>浏览器
    【解决方案2】:

    为标签添加一个 id='fish' ,然后在 python 中覆盖它:

    <body id='fish' onload='brython()'>
    

    然后:

    d = document['fish']
    d.clear()
    d <= "Result: %s" % str(x)
    

    注意需要先调用element .clear(),和Javascript .appendChild()一样,见文档:https://brython.info/static_doc/en/cookbook/content_in_div.html

    如果您想在适当的 XHTML 页面中看到它,请不要替换整个正文,而只需替换一个 div 元素/标签。或者用所有需要的 XHTML 标签覆盖整个正文。

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2022-11-18
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多