반응형
이번 주제는 하나의 프로그램이 db에 쓰기만을 하는 동안 다른 프로그램에서 해당 db에 접속해서 읽는동작만 하는 것을 구현하였다.
일초 단위로 읽고 쓰고 읽는 값은 마지막 3개의 값만 출력하는 것으로 하였다.
파이썬으로 작성하였고 pymongo로 동작한다.
아래 코드를 통해 이해해 보자.
코드 - write.py>>
from pymongo import MongoClient
from time import sleep
my_client = MongoClient("mongodb://localhost:27017/")
db = my_client['number_inc']
db_col = db.numbers
idx = 0
while True:
post = {
"num": idx,
}
db_col.insert_one(post)
idx = idx + 1
sleep(1)
코드 - read.py>>
from pymongo import MongoClient
from time import sleep
my_client = MongoClient("mongodb://localhost:27017/")
db = my_client['number_inc']
db_col = db.numbers
while True:
num = db_col.find().sort("_id", -1).limit(3)
for _ in num:
print(_)
# print(num[-1])
sleep(1)
결과 및 주석>>
{'_id': ObjectId('5fdb1f8e075ce2770c45a6b3'), 'num': 4}
{'_id': ObjectId('5fdb1f8d075ce2770c45a6b2'), 'num': 3}
{'_id': ObjectId('5fdb1f8c075ce2770c45a6b1'), 'num': 2}
{'_id': ObjectId('5fdb1f8f075ce2770c45a6b4'), 'num': 5}
{'_id': ObjectId('5fdb1f8e075ce2770c45a6b3'), 'num': 4}
{'_id': ObjectId('5fdb1f8d075ce2770c45a6b2'), 'num': 3}
{'_id': ObjectId('5fdb1f90075ce2770c45a6b5'), 'num': 6}
{'_id': ObjectId('5fdb1f8f075ce2770c45a6b4'), 'num': 5}
{'_id': ObjectId('5fdb1f8e075ce2770c45a6b3'), 'num': 4}
{'_id': ObjectId('5fdb1f91075ce2770c45a6b6'), 'num': 7}
{'_id': ObjectId('5fdb1f90075ce2770c45a6b5'), 'num': 6}
{'_id': ObjectId('5fdb1f8f075ce2770c45a6b4'), 'num': 5}
{'_id': ObjectId('5fdb1f92075ce2770c45a6b7'), 'num': 8}
{'_id': ObjectId('5fdb1f91075ce2770c45a6b6'), 'num': 7}
{'_id': ObjectId('5fdb1f90075ce2770c45a6b5'), 'num': 6}
{'_id': ObjectId('5fdb1f93075ce2770c45a6b8'), 'num': 9}
{'_id': ObjectId('5fdb1f92075ce2770c45a6b7'), 'num': 8}
{'_id': ObjectId('5fdb1f91075ce2770c45a6b6'), 'num': 7}
read.py에서는 마지막 3개를 db에서 계속 가져와서 출력하고 write.py는 1초마다 계속 증가된 숫자를 넣어준다.
반응형
'파이썬(Python) > 웹서버' 카테고리의 다른 글
아두이노에서 온도값 주면 db에서 저장한 값을 webGUI에서 그래프로 출력하기 (0) | 2020.12.29 |
---|---|
serial 통신으로 받은 값 DB에 저장하기 (8) | 2020.12.18 |
flask, pyserial 동시에 사용하기 (2) | 2020.12.17 |
post form 으로 보낸 데이터 mongodb에 저장하기 (0) | 2020.12.14 |
virtualenv 가상환경 만들기 (0) | 2020.12.14 |