Socket

소켓통신으로 받은 데이터 mysql 서버에 저장하기 (python으로 쿼리문 이용)

섭섭입니다 2020. 9. 14. 17:54

소켓 통신으로 체온을 넘겨주면 캡스톤 대회 준비 중 필요한 기능으로

 

QR코드로 학과, 학번, 이름을 DB에 저장한뒤에 그 다음 체온을 재서 소켓통신을 활용해 온도를 넘겨 받은 후에 그것을 mysql 서버에 저장할 것이다. 

 

 

 

원하는 위치에 대한 update 기능이 필요하여서 구현해보게 됐다.

 

 

 

 

간단하게 python 을 이용해서 text 파일의 내용을 읽어드린 후 그것을 실시간으로 계속 받아와야 하기에

 

while문 안에서 if문을 통해 조건을 부여받고 같은 체온이면 저장하지 않고,

 

그 다음 사람의 체온이 받아질 때 까지 text file만 읽고 있다가 변화하면 저장하는 형식으로 구현해보았다.

 

 

 

 

 

먼저 QR을 통해 데이터베이스에 사용자를 추가하게되면 id값이 부여되고 학번, 이름, 학과, 시간 의 데이터가 들어간다. 

 

그에 맞는 id 값에다 온도를 업데이트하여 수정한다.

 

 

 

 

 

이 글에서는 id값에 맞게 받아 온 온도를 수정했지만 코드를 조금 수정하여 학생마다의 고유숫자인 학번을 통해서 업데이트 할 것이다. ★

 

 

 

 

1. 먼저 큐알코드 스캔을 한 모습이다.  (같은 큐알코드 두번찍음, id값 다름)

 

 

 

2. python 코드를 이용해서 NULL로 비어있는 temperature 값을 update 해준다.

 

 

 

 

소켓통신하여 들어온 값은 36.2111 이고 python 코드 실행결과 위와같이 update 된 모습을 볼 수 있다.

 

 

 

 

3. 그 다음 사용자가 체온을 잰다면 메모장의 값이 변화 할 것이다. 변화한 값에 대한 update된 모습

 

 

 

 

 

 

소켓통신하는 코드에 다음과 같은 코드를 추가해 수정해주면 될 것 같다.

 

 

< mysql_update.py >

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='qwe123',
                       db='capston', charset='utf8')

textfile = 'C:/Users/junseop/Desktop/CAPSTON/temperature.txt'

id = 28
copy = 0

curs = conn.cursor()



while True:
    f = open(textfile, 'r', encoding="utf-8" )
    s = f.read()            
    f.close()     

    if(copy != s):
        copy = s
        sql = """update topic set userTemperature = %s
                 where id = %s"""  
        curs.execute(sql,(s,id))
        print('id %d의 사용자 체온이 추가되었습니다.'%id)
        conn.commit()
        id = id + 1
   
conn.close()

 

 

 

 

 

 

 

python 메모장 소켓통신 : seopseop911.tistory.com/26

 

소켓통신으로 실시간 메모장 데이터 보내기 (python)

우선, 이번 학교에서 있는 캡스톤 대회 준비하는데 필요한 소켓통신 부분을 python 으로 시도해 보았다. 먼저 메모장의 데이터를 python 으로 소켓통신 하기 전에 간단한 메시지를 주고 받는 예제를

seopseop911.tistory.com

QR스캔 리더기 : seopseop911.tistory.com/38

 

안드로이드 - QR코드 리더기 만들기 (mysql, php 활용편) 데이터 저장 구현

저번엔 firebase에 저장해 봤지만 이번엔 아파치 서버를 이용해서 데이터를 저장해 볼 것이다 그리고, 전에는 QR코드를 찍고 화면이 전환된 뒤 EditText에 데이터가 적혀진 뒤에 그것을 저장버튼을 ��

seopseop911.tistory.com

 

 

 

 

 

참고글 :

 

python으로 mysql하기  pythonstudy.xyz/python/article/203-MySQL-DML

 

예제로 배우는 파이썬 프로그래밍 - MySQL DML

1. MySQL DML SQL에서 데이타 조작하는 INSERT, UPDATE, DELETE 문을 DML(Data Manipulation Language)이라 한다. MySQL에서 INSERT, UPDATE, DELETE를 사용하는 일반적인 절차는 앞 아티클 (MySQL 쿼리)과 유사하다. MySQL에 DML��

pythonstudy.xyz