㈠ js 和 python怎麼交互
python取得javascript裡面的值
復制代碼代碼如下:
import PyV8
with PyV8.JSContext() as env1:
env1.eval("""
var_i = 1;
var_f = 1.0;
var_s = "test";
var_b = true;
""")
vars = env1.locals
var_i = vars.var_i
print var_i
javascript取得python裡面的值
復制代碼代碼如下:
import PyV8
with PyV8.JSContext() as env1:
env1.securityToken = "foo"
env1.locals.prop = 3
print int(env1.eval("prop"))
python和javascript裡面的函數交互
python調用javascript裡面的函數python調用func就可以使用js裡面的function函數了
復制代碼代碼如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
(function ()
{
function a()
{
return "abc";
}
return a();
})
""")
print func()
這樣也可以
復制代碼代碼如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
function a()
{
return "abc";
}
function c()
{
return "abc";
}
""")
a = ctxt.locals.a
print a()
㈡ Node.js 與 Python 作為後端服務的編程語言各有什麼優劣
Node.js > Python 的地方
快:這個快有兩方面,第一是V8引擎快,在V8引擎背後操刀的是Lars Bak大神,他創造過高性能SmallTalk引擎和Java Hotspot引擎(現在Java的默認VM),他帶領下的V8引擎讓Javascript速度達到了一個新的階段。第二是非同步執行,Node.js功能上是一個基於V8引擎的非同步網路和IO Library,和Python的Twisted很像,不同的是Node.js的event loop是很底層的深入在語言中的,可以想像成整個文件在執行的時候就在一個很大的event loop里。
npm:npm可以說是用起來最順手的package management了,npm作為Node.js的官方package management,匯集了整個社區最集中的資源。不像Python經歷過easy_install和pip,還有2to3的問題。
Windows支持:Node.js有微軟的加持,Windows基本被視為一等公民來支持,libuv已經可以很好的做到統一跨平台的API;而Python雖然也對Windows有官方的支持,但是總感覺是二等公民,時不時出些問題。
Python > Node.js 的地方
語言:就單純從語言的角度來說,Python寫起來要比Javascript舒服很多。Javascript設計本身有許多缺陷,畢竟當時設計的時候只是作為在瀏覽器中做一些簡單任務的script,所以代碼一旦龐大,維護還是有困難(不過Node.js的mole很大的改善了這個問題)。不過用Coffeescript可以很大的改善Javascript,幾乎可以和Python等同。
成熟:成熟包括語言本身已經成熟,還有Framework和ecosystem也很龐大。Node.js的絕大多數framework都很新,有的API一直在變,有的感覺已經不在維護,總之沒有一個像Django那種百足之蟲感覺的framework。Python的主流ORM SQLalchemy也很成熟。
Python 和 Node.js 很難分高下的地方
非同步Style:Node.js的非同步Style是CPS,也就是層層callback,基於event,和瀏覽器中的Javascript很像。CPS好處是讓熟悉瀏覽器Javascript的人能很快上手,學習難度也不大。缺點是邏輯一復雜,就變得很難維護,基本上需要通過async.js這種library,或者用promise。Python的非同步除了和Node.js很像的Twisted之外,也有基於coroutine的gevent,coroutine讓非同步代碼維護起來更容易,不過學習曲線陡。
應用場景:如果是一個CRUD的app,那麼想都不想直接是Python,Node.js本身不擅長CRUD的app(絕大多數Node.js都是直接裸在外面的,而不是有一個Nginx在前面,否則websocket就不能用了,不過新版nginx開始支持websocket),代碼又不好維護,而Python的WSGI很適合,成熟的stack也有很多。如果更偏向於real-time,比如一個chat room,那麼Node.js實現更容易。這兩個應用場景還是有差別的。
如果解決了您的問題請採納!
如果未解決請繼續追問!
㈢ js和python那個比較難
我覺得兩個的水差不多深,兩者都是入門容易精通困難,正所謂易學難精。js做前端,延伸node.js做後端操作mongodb資料庫非常方便,輕量級全棧開發可以考慮這個路線,python主要做後端,可以和多款關系型資料庫結合比較好常見mysql比較多,全棧的話學習成本高於javascript。兩門都可以做web開發,爬蟲,桌面應用等。python比js多了一些應用場景,比如人工智慧,大數據等。python在前端分離開發方面比不上js,因為前端有三大框架。總結各有各的優勢,水很深學不完的。希望能幫到您。
㈣ python中如何調用js文件中的方法呢
1、打開pycharm開發工具,點擊File菜單,選擇Settings...,進行第三方模塊安裝;輸入selenium,點擊Install Package。
㈤ javascript 可否直接調用python
不行的,Python本身帶的模塊沒有Javascript引擎。可以安個 https://github.com/davisp/python-spidermonkey 插件就可以調用了。
㈥ js調用代碼 js能調用python里的函數嗎
js是前端腳本,可以通過ajax讓後端的伺服器調用python腳本,然後返回處理結果。前端直接調用任何本地文件都是不安全也是不推薦的
㈦ 如何在js上運行Python腳本或者,js怎麼調用.py文件
想調用後台按鈕的事件,不用AJAX,可以使用一種變通的方法。 比如你一個前台HTML控制項 ID=ctl吧,在這里控制項的onclick事件中綁定下面的函數.同時假定已存在一個ID=btnTest的伺服器控制項(該控制項有後台Click事件) <input id='ctl' type='button' onclick='callOtherBtnEvent();' /> function callOtherBtnEvent(){ document.getElementById('<%btnTest.ClientID%>').click(); } 後台public void btnTest_Click(object sender,EventArgs e) { Response.Write("<script>alert('調用了後台事件')</script>"); }
㈧ html 可以通過js函數執行python嗎
可以使用js發起http請求,然後這個請求對應的是啟動該腳本。
㈨ node.js可以和python交互嗎
1. 把 Electron 當做純瀏覽器用,Python 端可以用 web.py 或者 flask 等做一個伺服器,使用 Ajax 在前端 JS 和 後端 Python 之間通信。
2. 使用 Socket 跨進程通信: Python socket Low-level networking interface,Node.js net。
3. 使用父子進程的 stdin/stdout...Child Process
Electron 的 Renderer 端默認情況下融合了 NodeJS 環境,也就是可以直接在頁面裡面使用 net 模塊創建 Socket,相比之下 2 應該是最優解。
㈩ 如何在 python 里運行 js 代碼
Python 是後端語言,只能用命令行形式調用 nodeJS 代碼