python和JavaScript通信
- js和python是兩種語言,js處理網(wǎng)頁數(shù)據(jù),python可作為服務(wù)端開發(fā),兩者通過
websocket進(jìn)行通信。 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標(biāo)簽,連接服務(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 轉(zhuǎn)換數(shù)據(jù)類型函數(shù)和轉(zhuǎn)換數(shù)據(jù)類型的作用
這篇文章主要介紹了Python 轉(zhuǎn)換數(shù)據(jù)類型函數(shù)和轉(zhuǎn)換數(shù)據(jù)類型的作用,圍繞Python 轉(zhuǎn)換數(shù)據(jù)類型的相關(guān)資料展開內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03
Python實現(xiàn)多線程/多進(jìn)程的TCP服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)多線程/多進(jìn)程的TCP服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09
零基礎(chǔ)寫python爬蟲之爬蟲的定義及URL構(gòu)成
俗話說工欲善其事必先利其器,作為本系列文章的第一篇,我們同樣也需要先利其器,先把爬蟲的定義以及寫爬蟲所需要的基礎(chǔ)知識先介紹給大家。2014-11-11
Pytorch自動求導(dǎo)函數(shù)詳解流程以及與TensorFlow搭建網(wǎng)絡(luò)的對比
PyTorch是一個開源的Python機(jī)器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,這篇文章主要介紹了Pytorch自定義自動求導(dǎo)函數(shù),以及PyTorch與TensorFlow搭建網(wǎng)絡(luò)的對比2021-11-11
Pytorch創(chuàng)建隨機(jī)值張量的過程詳解
這篇文章主要介紹了Pytorch創(chuàng)建隨機(jī)值張量的過程詳解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
使用pycharm運(yùn)行flask應(yīng)用程序的詳細(xì)教程
這篇文章主要介紹了使用pycharm運(yùn)行flask應(yīng)用程序,首先大家需要使用pycharm創(chuàng)建你的第一個app,接下來就開始配置pycharm,需要的朋友可以參考下2021-06-06
python 限制函數(shù)調(diào)用次數(shù)的實例講解
下面小編就為大家分享一篇python 限制函數(shù)調(diào)用次數(shù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Django中使用SMTP實現(xiàn)郵件發(fā)送功能
在?Django?中使用?SMTP?發(fā)送郵件是一個常見的需求,通常用于發(fā)送用戶注冊確認(rèn)郵件、密碼重置郵件等,下面我們來看看如何在?Django?中配置?SMTP?發(fā)送郵件吧2025-01-01

