下記pyスクリプトがサーバー側でsqliteからデータを取り出し、
jsonに変換して、webブラウザ側にソケット通信するようなイメージとなります。
python
1dbname = 'MailList.db' 2conn = sqlite3.connect(dbname, check_same_thread = False) 3cur = conn.cursor() 4cur.execute("CREATE TABLE IF NOT EXISTS items(\ 5id INTEGER PRIMARY KEY,\ 6sendmail text,\ 7subject text,\ 8body text,\ 9datetime text)") 10 11def receivedMessage(client, server, message): 12 print(message) 13 try: 14 if message == 'メール一覧表示': 15 print(message) 16 17 cur.execute("SELECT * FROM items") 18 19 #while True: 20 result=cur.fetchall() 21 #if result is None: 22 #break 23 print(result) 24 print(type(result)) 25 #Mail_List1 = str(result) 26 #print(type(result)) 27 #sendmail = result[1] 28 #subject = result[2] 29 #body = result[3] 30 31 #print(result) 32 #result1 = result[1:3] 33 #result2 = str(result1) 34 #json_data = {"送信先":sendmail, "件名":subject, "本文":body} 35 #print(json_data) 36 #print(type(json_data)) 37 Mail_List1 = json.dumps(result, ensure_ascii=False) 38 #print(Mail_List1) 39 #print(type(Mail_List1)) 40 server.send_message_to_all(Mail_List1) 41 42 #print(sendmail) 43 #server.send_message_to_all(sendmail) 44 #print(subject) 45 #server.send_message_to_all(subject) 46 #print(body) 47 #server.send_message_to_all(body) 48 #Mail_List = sendmail+":"+subject+":"+body 49 50 #Mail_List1 = json.dumps(Mail_List) 51 #print(type(Mail_List1)) 52 #print(Mail_List1) 53 #server.send_message_to_all(Mail_List1) 54 55 except KeyboardInterrupt: 56 conn.close() 57 GPIO.cleanup() 58 59server = WebsocketServer(9005, host="192.168.43.57") 60server.set_fn_message_received(receivedMessage) 61#server.set_fn_new_client(new_client) 62server.run_forever()
javascript
1<html> 2<head> 3 <script src="http://code.jquery.com/jquery-latest.min.js"> 4 </script> 5 <meta charset="UTF-8"> 6 <script> 7 $(function(){ 8 var ws5 = new WebSocket("ws://192.168.43.57:9005/"); 9 $('#btn1').on('click', function () { 10 ws5.send('メール一覧表示'); 11 }); 12 13 ws5.onmessage = function (message) { 14 var str = message; 15 16 //var obj = JSON.parse(str); 17 //var obj = $.parseJSON(str); 18 //var str1 = str.split(')'); 19 //$.each(str,function(index,element){ 20 //$('#test').append(index + ':' + element + '<br>'); 21 //}); 22 23 $('#test').append(str.data); 24 25 }; 26 27 }); 28 29 </script> 30 <style> 31 #test{ 32 height:200px; 33 width:600px; 34 } 35 36 </style> 37</head> 38 39<body> 40 <button id="btn1">メール登録一覧表示</button> 41 <p id="test"></p> 42 <ul> 43 <li>エントリー名|カテゴリー名|ブログ名</li> 44 <li>エントリー名|カテゴリー名|ブログ名</li> 45 </ul> 46 47</body> 48</html>
上記web側コードでjsonデータを受け取り、htmlにリスト(表)のような形式で表示したいと考えております。<script>の//でコメントアウトしているコードは、一通り試しました。
現状のコードでは、下記がブラウザ上に表示されます。
・下記はjsonデータになっているでしょうか。
・[]は配列/リストのような構造と認識しております。
"abc1"、"abc2"、"abc3"、"abc4"...を取り出して、上から順番に縦に表示、
"def1"、"def2"、"def3"、"def4"...を取り出して、abcの横に上から順番に縦に表示して、
表のような形式で表示したいです。
・リストのように表示するにはfor文で一個ずつ取り出してhtmlにあてはめていくようなイメージでしょうか。
[[1, "abc1", "def1", "aq", "2021-09-07|07:17:29"], [2, "abc2", "def2", "ede", "2021-09-07|07:20:51"], [3, "abc3", "def3", "wsw", "2021-09-07|21:32:09"], [4, "abc4", "def4", "wsw", "2021-09-07|21:32:11"]]
回答1件
あなたの回答
tips
プレビュー