您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“python和JavaScript通信怎么實(shí)現(xiàn)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“python和JavaScript通信怎么實(shí)現(xiàn)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
js和python是兩種語言,js處理網(wǎng)頁(yè)數(shù)據(jù),python可作為服務(wù)端開發(fā),兩者通過websocket
進(jìn)行通信。
websocket
是socket的封裝,省去了通信上的HTTP協(xié)議轉(zhuǎn)換上的麻煩.
大中型項(xiàng)目推薦使用torando/Djiango平臺(tái),兩個(gè)平臺(tái)集成度較高,方便開發(fā)使用.
實(shí)驗(yàn)以發(fā)送html頁(yè)面上的圖片到服務(wù)器后端為例子.
服務(wù)端接收?qǐng)D片后,開啟本地端口為10086的服務(wù),等待前端的連接.服務(wù)把前端發(fā)的圖像url存在本地文件car.bmp.
import asyncio import websockets import urllib.request async def recv_user_msg(websocket): while True: url = await websocket.recv() urllib.request.urlretrieve(url,'car.bmp') await websocket.send('ok') async def run(websocket, path): while True: try: await recv_user_msg(websocket) except websockets.ConnectionClosed: print("ConnectionClosed...", path) break if __name__ == '__main__': print("127.0.0.1:10086 websocket...") asyncio.get_event_loop().run_until_complete(websockets.serve(run, "127.0.0.1", 10086)) asyncio.get_event_loop().run_forever()
缺少module直接pip install安裝解決.
pip install websockets pip install urllib
在頁(yè)面上嵌入img標(biāo)簽,連接服務(wù)端,點(diǎn)擊發(fā)送圖片,圖片發(fā)送至服務(wù)端,并且顯示返回結(jié)果.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>測(cè)試Socket——ws://127.0.0.1:10086</title> </head> <body> <img id = 'img' src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598273151875&di=2823d5f7c3aa5e075bd785572e3e1561&imgtype=0&src=http%3A%2F%2Fimage.9game.cn%2F2019%2F8%2F8%2F90082743.jpg"/> <button onclick = "send_img()">發(fā)送圖片</> <script type="text/javascript"> var socket; var ws = new WebSocket("ws://127.0.0.1:10086/test"); socket = ws; ws.onopen = function() { console.log('連接成功'); }; ws.onmessage = function(evt) { var received_msg = evt.data; alert('recv:' + received_msg + ' 發(fā)送完成'); }; ws.onclose = function() { s = '斷開了連接' alert(s); }; function send_img() { image = document.getElementById('img'); socket.send(image.src); } </script> </body> </html>
讀到這里,這篇“python和JavaScript通信怎么實(shí)現(xiàn)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。