Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
過在瀏覽器上面跑 Python 嗎?想過 Python 能放在 script 元素里運行嗎?想過 Python 能直接操控 DOM 和瀏覽器嗎?Brython 告訴你,一切皆有可能。
Python
Brython(Browser Python),是由 brython-dev 組織在 Github 上開源的可在瀏覽器上運行的 Python3 實現,項目地址為 https://github.com/brython-dev/brython。僅需在 HTML 引入一個 brython.js 并初始化,就可以在瀏覽器上運行 Python 代碼,包括 Python 的推導式、生成器、元類、模塊導入,和許多 CPython 模塊,并且可以操作 DOM 元素和事件,以及與 jQuery,Highcharts 等 JS 庫進行交互。
Brython
Brython 只需引入其 Javascript 文件即可使用,可以使用 CDN:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
如果想要使用導入標準庫,那還需要引用 stdlib 的 JS:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython_stdlib.js"></script>
此外,還可以使用 pip 在本地安裝:
pip install brython
python -m brython --install
我們來看一個簡單的例子:
<html>
<head>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
from browser import document, alert
def echo(event):
alert(document["zone"].value)
document["mybutton"].bind("click", echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>
可以看到,代碼中使用了一個類型為 text/python 的 script 元素,在里面包含了 Python 代碼。
在 Python 代碼中,從由 Brython 提供的 browser 庫中導入了 document 和 alert,分別對應 Javascript 中的 document 對象和 alert 函數。然后,定義了一個 echo 函數,用來彈出對話框來顯示 id 為 zone 的輸入框的值。最后對 id 為 mybutton 的按鈕的 click 事件與 echo 函數進行綁定。
把代碼放到瀏覽器中運行,顯示出一個文本輸入框和一個按鈕。輸入 Hello,并點擊按鈕,此時彈出了顯示 Hello 的對話框。
Brython運行例子
我們再來看一個使用了 Python 標準庫的例子:
<html>
<head>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython_stdlib.js"></script>
</head>
<body onload="brython()" style="background-color: #ddd;">
<script type="text/python">
from datetime import datetime
from browser import document, timer
def show_time():
now = datetime.now().strftime("%H:%M:%S")
document["display"].textContent = now
timer.set_interval(show_time, 1000)
</script>
<div id="display"></div>
</body>
</html>
此時我們需要引入 brython_stdlib.js。在 Python 代碼中,使用了 Python 的 datetime 模塊來獲取當前時間,同時利用 Brython 的 timer 的 set_interval 來實現周期性調用。運行代碼,網頁上顯示了每秒刷新的當前時間:
Brython運行例子2
Brython 所實現的功能極其豐富,把 Python 語言和瀏覽器 Javascript 有機地結合在了一起,實現了在瀏覽器中運行 Python 代碼,并使用 Python 操作 DOM。
雖然 Brython 與原生 Javascirpt 和 WASM 等技術相比較實用價值仍不高,但為前端的跨語言實現給出了一種可行的方案,值得對相關領域感興趣的開發者繼續研究。
由于工作需要,需要每天查詢服務器日子,查詢報錯信息,每天人工登服務器是真的太麻煩了~~~~由于需要僅僅使用了paramiko的一小部分功能更多請看官網。
pip install paramiko
ssh = paramiko.SSHClient() # 調用paramiko模塊下的SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 加上這句話不用擔心選yes的問題,會自動選上(用ssh連接遠程主機時,第一次連接時會提示是否繼續進行遠程連接,選擇yes)
ssh.connect(hostname='ip', port='端口號int類型', username='用戶名', password='密碼', timeout='超時時間') # 連接遠程主機,SSH端口號為22
stdin, stdout, stderr = ssh.exec_command('cd /;cd /home; pwd') # 顯示目前所處位置
# ssh.exec_command('linux命令【多條命令用{;}分號分割】')
# stdout--->返回結果
# stderr--->錯誤信息
# 打印返回結果
result = stdout.read()
print result
1、建議
a》stdout.read().decode('utf-8') # stdout最好decode下
b》paramiko結合re【正則】會更加的好
http://docs.paramiko.org/en/2.4/index.html
#python##服務器##自動化##linux##每天學python#
、簡介
PyExecJS是一個Python庫,它提供了一種在Python中執行JavaScript代碼的方式。它基于ExecJS庫,可以使用多個JavaScript運行時(如Node.js、PhantomJS、JScript等)來執行JavaScript代碼。
使用PyExecJS,您可以在Python環境中執行JavaScript代碼,從而利用JavaScript的功能和庫。這對于需要在Python中調用JavaScript代碼的任務非常有用,例如執行一些特定的JavaScript函數、處理JavaScript生成的數據或與JavaScript相關的網頁交互等。
官網:https://github.com/doloopwhile/PyExecJS
二、安裝
pip install PyExecJS
三、屬性方法
import execjs
result = execjs.eval('1 + 2')
print(result)
import execjs
js_str='''
var a=1,b=2
function test(c=0){
return a+b+c
}
'''
context = execjs.compile(js_str)
print(context.eval('a+b'))
print(context.call('test',4))
四、通過讀取js文件執行js
import execjs
with open('test.js','r') as js_file:
context = execjs.compile(js_file.read())
print(context.eval('a+b'))
print(context.call('test', 4))
*請認真填寫需求信息,我們會在24小時內與您取得聯系。