[DE] API(1)
오늘은 db의 API를 python으로 가져오는 방법에 대해 알아보겠습니다.
1. SQLite API
- API는 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계입니다.
- API를 통해 python이라는 프로그램과 sql이라는 데이터베이스가 서로 소통할 수 있습니다. 사전에 정해둔 약속문이나 협약문이라고 봐도 좋을 것 같습니다.
- 아래에 소개할 과정이 큰 틀에서 모두 API에 해당합니다.
1) db 연결
- 연결하는 방법은 간단합니다.
- sqlite3의 connect 메소드로 데이터베이스의 파일 위치를 알려줍니다.
import sqlite3
conn = sqlite3.connect('test.db')
- 만약 db 파일이 없다면 입력한 이름의 db를 자동으로 생성합니다.
- 이렇게 연결하면
conn
은 데이터베이스와 연결된 하나의 세션을 보관합니다. - 해당 세션을 통해 데이터베이스와 소통하기 위한
cursor
를 만듭니다.
cur = conn.cursor()
2) 커서 메소드를 활용한 db 조작
- 커서의 execute 메소드로 데이터베이스를 조작할 수 있습니다.
- 이 메소드 안의 attribute를 바로 SQL의 쿼리문으로 넘깁니다.
cur.execute("""CREATE TABLE test_table (
name VARCHAR(32),
socre INT);
""")
cur.execute("INSERT INTO test_table (name, age) VALUES ('AAA', 30);")
- 테이블을 만들고 레코드를 추가했습니다.
- 이 레코드를 데이터베이스에 반영하기 위해서는 커밋을 해야합니다.
conn.commit()
3) 테이블 조회
- 추가한 테이블과 레코드를 확인하기 위해서 마찬가지로 cursor 메소드를 활용합니다.
cur.execute("SELECT * FROM test_table;")
- cursor로 호출해도 테이블이 출력되지 않습니다. cursor로 execute를 실행한 뒤 아래의 명령어를 한번 더 실행해야 합니다.
cur.fetchall() #테이블을 한 번에 조회합니다.
cur.fetchone() #데이터베이스가 전달하는 결과를 하나씩 리턴합니다.
2. 클라우드 데이터베이스
- 다음은 Python에서 Postgre 데이터베이스를 사용해보겠습니다.
- Postgre는 클라우드 데이터베이스입니다. URI로 Postgre의 데이터베이스와 연결하는 과정이 필요합니다.
!pip install psycopg2 #or psycopg2-binary
import psycopg2
conn = psycopg2.connect(
host="서버 호스트 주소",
database="데이터베이스 이름",
user="유저 이름",
password="유저 비밀번호")
- ElephantSQL에서 인스턴스를 생성한 뒤 클라우드 데이터베이스에 대한 URI와 host, user, password 등을 받을 수 있습니다.
- 필요한 정보를 conn 인자 안에 입력하면 sqlite3에서 실행했던 것처럼 Postgre 데이터베이스와 소통할 수 있는 세션이 생성됩니다.
Author And Source
이 문제에 관하여([DE] API(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gooook/DE-API1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)