-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrequirements.txt
112 lines (81 loc) · 2.16 KB
/
requirements.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
디렉터리 구조도
my_project/
├── FASTAPI/
│ ├── __init__.py
│ ├── main.py
│ ├── models.py
│ ├── database.py
│ └── crud.py
└── requirements.txt
사용 패키지:
fastapi
uvicorn
sqlalchemy
aiomysql
databases
pymysq
cryptography
3306
33060
파일별 역할과 설명:
1. __init__.py
파이썬 패키지로 인식되도록 함.
이 파일이 있으면 app 디렉토리를 패키지로 인식하여 "from app import ..."형태의 모듈 임포트가 가능해짐.
이것 외에 특별한 역할은 없음.
2. main.py
API엔드포인트들을 정의
데이터베이스의 초기화 등을 수행.
fastAPI의 인스턴스를 생성하고,(app = FastAPI())
각 기능의 엔드포인트를 정의하고,
DB 세션을 관리.
database.py,
models.py,
crud.py과 연결
3. models.py
Sensordata 클래스의 스키마를 정의한다.
database.py,
crud.py 과 연결
4. database.py
데이터베이스 url 설정
SQLAlchemy엔진 생성
세션 로컬 생성
데이터베이스 초기화 함수
main 시작 시 db 초기화하고, 엔드포인트 요청 시 세션을 제동.
5. crud.py
생성, 읽기, 업데이트, 삭제 같은 기능들을 정의함.
get_sensor_data : 센서 데이터를 조회한다.
create_sensor_data : 센서 데이터를 생성
update_sensor_data : 센서 데이트를 업데이트
main에서 db조작 작업 시 사용
models 에서 db조작 시 사용
실행코드
uvicorn main:app --reload
uvicorn app.main:app --reload
참조
https://wikidocs.net/162082
https://wikidocs.net/175214
받아오는 데이터의 예시
기본 상태
{
"temperature": 25.0,
"humidity": 60.0,
"is_raining": false,
"umbrella_present": true,
"door_open": false
}
비가 오는 상황
{
"temperature": 20.5,
"humidity": 80.0,
"is_raining": true,
"umbrella_present": false,
"door_open": true
}
우산이 있는 상태에서 문이 열림
{
"temperature": 22.0,
"humidity": 55.0,
"is_raining": false,
"umbrella_present": true,
"door_open": true
}