python和JavaScript通信
- js和python是兩種語言,js處理網(wǎng)頁數(shù)據(jù),python可作為服務(wù)端開發(fā),兩者通過
websocket
進行通信。 websocket
是socket的封裝,省去了通信上的HTTP協(xié)議轉(zhuǎn)換上的麻煩.- 大中型項目推薦使用torando/Djiango平臺,兩個平臺集成度較高,方便開發(fā)使用.
實驗以發(fā)送html頁面上的圖片到服務(wù)器后端為例子.
服務(wù)端接收圖片后,開啟本地端口為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
在頁面上嵌入img標簽,連接服務(wù)端,點擊發(fā)送圖片,圖片發(fā)送至服務(wù)端,并且顯示返回結(jié)果.
?<!DOCTYPE html> <html lang="en"> ? <head> ? ? <meta charset="UTF-8"> ? ? <title>測試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>
到此這篇關(guān)于python和JavaScript通信的文章就介紹到這了,更多相關(guān)js和python通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python快速建立超簡單的web服務(wù)器的實現(xiàn)方法
某些條件測試,需要一個簡單的web服務(wù)器測試一下,為此專門去配置個nginx 或者 apache服務(wù)器略顯麻煩,這里就為大家介紹一下使用python快速建立超簡單的web服務(wù)器的方法,需要的朋友可以參考下2018-02-02Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標的方法詳解
ICO是一種圖標文件格式,圖標文件可以存儲單個圖案、多尺寸、多色板的圖標文件。本文將利用Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標,感興趣的小伙伴可以了解一下2022-11-11Python中schedule模塊定時任務(wù)的使用方法(2)
這篇文章主要介紹了Python中schedule模塊定時任務(wù)的使用方法,文章基于上一篇文章的內(nèi)容展開的后續(xù),需要的朋友可以參考一下2022-05-05Python內(nèi)置函數(shù)reversed()用法分析
這篇文章主要介紹了Python內(nèi)置函數(shù)reversed()用法,結(jié)合實例形式分析了reversed()函數(shù)的功能及針對序列元素相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下2018-03-03對python opencv 添加文字 cv2.putText 的各參數(shù)介紹
今天小編就為大家分享一篇對python opencv 添加文字 cv2.putText 的各參數(shù)介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12