// it's for Latex

pages

[How to connect Python programs to MariaDB in NAS] #13. Download Data from NAS

오랜만에 다시 작업한다. 이제 NAS Database에서 Data를 받아보자.



작업환경
- OS : Windows 10
- PC : LattePanda 4G RAM 64G eMMC (DFR0419)
- NAS : DS1618+
- Python : 3.6.8
- Tool : Pycharm
- PC와 NAS는 다른 네트워크
- PC와 NAS는 각각 Internet이 가능한 상태




1. Write Base Code


기본 시작 Code는 #07에서 참고한 소스이며, 다음과 같다.


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
#!/usr/bin/python
import mysql.connector as mariadb
from mysql.connector import Error
try:
   connection = mariadb.connect(host='#07의 2번에서 확인한 NAS의 외부주소',
user='#06의 3번에서 확인한 user 명 입력',
port='#06의 6번에서 확인된 Port 번호 입력',
password='#06의 3번에서 login에 사용되는 password 입력',
database='#06의 4번에서 확인된 db 명 입력')
   if connection.is_connected():
       db_Info = connection.get_server_info()
       print("Connected to MySQL database... MySQL Server version on ", db_Info)
       cursor = connection.cursor()
       cursor.execute("select database();")
       record = cursor.fetchone()
       print("Your connected to -", record)
except Error as e:
   print("Error while connecting to MySQL", e)
#finally:
#    if(connection.is_connected()):
#        cursor.close()
#        connection.close()
#        print("MySQL connection is closed")
cs


2. Add Fetch Data Code


먼저 아래 링크를 참조했음을 알린다.
(링크 : https://stackoverflow.com/questions/25479710/how-to-fetch-data-in-python-from-mysql-database )


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
#!/usr/bin/python
import mysql.connector as mariadb
from mysql.connector import Error
try:
   connection = mariadb.connect(host='#07의 2번에서 확인한 NAS의 외부주소',
user='#06의 3번에서 확인한 user 명 입력',
port='#06의 6번에서 확인된 Port 번호 입력',
password='#06의 3번에서 login에 사용되는 password 입력',
database='#06의 4번에서 확인된 db 명 입력')
   if connection.is_connected():
       db_Info = connection.get_server_info()
       print("Connected to MySQL database... MySQL Server version on ", db_Info)
       cursor = connection.cursor()
       cursor.execute("select database();")
       record = cursor.fetchone()
       print("Your connected to -", record)

       sql_select_Query = "select * from tablename"
       cursor.execute(sql_select_Query)
       for row in cursor:
           print("time_peak = ", row[3], )
           print("time_rms = ", row[2])
           print("crest_factor  = ", row[4])
           print("frequency_peak  = ", row[5])
           print("frequency_band  = ", row[11], "\n")
       cursor.close()
except Error as e:
   print("Error while connecting to MySQL", e)
#finally:
#    if(connection.is_connected()):
#        cursor.close()
#        connection.close()
#        print("MySQL connection is closed")
cs


3. Check Data Type of Raw Data


받아온 Data의 Type을 확인하기 위해서 다음과 Code를 이용한다.
(링크 참조 : https://eehoeskrap.tistory.com/295)

print(type(row[3]))

결과는 다음과 같다.

<class 'float'>

그리고 row 자체의 type은 다음과 같다.

print(type(row))

<class 'tuple'>

4. Make list given row data


Data를 받아 list로 만들어 주도록 한다.

f_param = [] # list for parameterstemp_param = [] # list for temporary raw datafor row in cursor:
    #print("time_peak = ", row[3], )    #print("time_rms = ", row[2])    #print("crest_factor  = ", row[4])    #print("frequency_peak  = ", row[5])    #print("frequency_band  = ", row[11], "\n")    #print(type(row))    temp_param = []
    temp_param.append(row[0]) # id    temp_param.append(row[3]) # time_peak    temp_param.append(row[2]) # time_rms    temp_param.append(row[4]) # crest_factor    temp_param.append(row[5]) # frequency_peak    temp_param.append(row[11]) # frequency_band    f_param.append(temp_param)
cursor.close()
print(f_param)




























































댓글 없음:

댓글 쓰기