Python에서 데이타베이스를 엑서스하기 위한 한 방법으로 Python DB API를 사용할 수 있다. Python DB API는 여러 데이타베이스를 엑세스하는 표준 API 로서 여러 DB 엑세스 모듈에서 이 최소한의 API 인터페이스 표준을 따르고 있다. 표준 API는 크게 데이타베이스를 연결하고, SQL 문을 실행하고, 연결을 닫는 등의 기본적인 DB 작업과 관련된 기능들을 정의하고 있다. Python DB API는 현재 버전 2.0을 사용하는데, 스펙은 PEP 249에 자세히 소개되어 있다.

DB API 란

  • 파이썬의 데이터베이스 표준 API
  • 다양한 데이터베이스를 위한 표준 API
  • 현재 version 2.0 사용 PEP 249 명세서를 준수.
  • 각각의 DB에 상응하는 별도의 DB 모듈을 다운받아야 한다
  • MySQL, PostgreSQL, Oracle, MSSQL 등 대표 DBMS 지원
  • sqlite3 는 Python 2.5 이상에서 기본 내장

DB API 주요 명세

  • Constructors
    • connect(): connection 객체 반환
  • connection 객체
    • commit(), rollback(), cursor(), close()
  • cursor 객체
    • execute(), executemany(), fetchone(), fetchmany() , close()…

그림: Python Db api

SQLite3 API

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
import sqlite3

"""데이터베이스 파일을 연다"""
con = sqlite3.connect("testdb")

"""커서 생성"""
cur = con.cursor()

"""조회"""
cur.execute("SELECT * FROM userTable")

print("사용자ID 사용자이름 이메일 가입일")
print("-------------------------------------------")

"""커서에서 fetch"""
while(True):
row = cur.fetchone()
if row == None :
break;
userid = row[0]
username = row[1]
email = row[2]
subdate = row[3]

print(f"{userid :5} {username :15} {email :15} {subdate}")

con.close()


Ubuntu 20.04 - Cheat sheet

Ubuntu 20.04 를 설치/운영하면서 필요한 팁/트릭과 쓸모있는 사용법을 정리한다.

비슷한 문서:

Timezone 관련

CLI에서 설정을 할 수 있다.

timedatectl timedatectl 명령으로

1
2
3
4
5
6
$ timedatectl list-timezones
...
Asia/Seoul
...

$ sudo timedatectl set-timezone Asia/Seoul

만약 손으로 수정을 한다면,

timedatectl 로 지정되는 설정 Timezone/etc/localtime 이라는 바이너리로 저장되므로
명령행에서 지원하는 timezone을 복사할 수 도 있다고 한다..

1
$ sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime

LCD/Screen off

기존에 글 Ubuntu/시스템 전원관리, 2017년 에서 Ubuntu 18.x 에서 디스플레이(특히 노트북 LCD)를 끄기 위해서 사용되던 직접 vbetool 명령으로 동작하지 않는다.

그래서 Ubuntu 20.04 에서는 링크 ubuntu-20-04-on-a-laptop-is-there-any-way-toturn-off-the-screen 에 있는 방법으로 사용하고 있다.

디스플레이를 끄려면

1
2
3
sudo mount -o remount,exec /dev
sudo vbetool dpms off
sudo mount -o remount,noexec /dev

다시 디스플레이를 켜려면

1
2
3
sudo mount -o remount,exec /dev
sudo vbetool dpms on
sudo mount -o remount,noexec /dev

Network 상태 확인

ss 명령

ss 명령은 Socket Statistics 를 출력해 준다. open 된 소켓에 대한 정보를 표시한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ss [-a -t -u -l -p -n] [filter]

-a:
-t: TCP
-u: UDP
-l: LISTEN 상태 포트
-n: 호스트/포트/사용자 이름을 숫자로 표시
-p: 프로세스 이름
-r, --resolve: resolve host names
-w, --raw : display only RAW sockets
-x, --unix : display only Unix domain sockets
-4, --ipv4 : display only IP version 4 sockets
-6, --ipv6 : display only IP version 6 sockets
-m, --memory : show socket memory usage

LISTEN Port 확이

netstat 같이 LISTEN 상태 프로세스를 확인할 수 있다. 다음은 t: tcp 포트, l: LISTEN 상태의 소켓 정보를 출력한다.

1
2
3
4
5
6
7
8
9
10
$ ss -lntu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 12.42.168.213%enp3s0:68 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 10 127.0.0.1:9000 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:443 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:53000 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:2020 0.0.0.0:*

IPv4, IPv6 소켓

1
2
3
4
5
6
7
8
9
$ ss -tl4
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:http 0.0.0.0:*
LISTEN 0 511 0.0.0.0:https 0.0.0.0:*
$
$ ss -tl6
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 [::]:2020 [::]:*
q

lsof

Linux에서 open file을 확인하는데 사용되는 lsof 명령입니다. Unix/Linux의 모든 것은 파일로 이루어져있기때문에 스트림이나 네트워크 파일도 lsof 로 확인할 수 있습니다.

1
2
$ lsof -i
$ lsof -l

Ubuntu/시스템 전원관리, 2017년