일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 성남 코로나 확진자
- 해킹
- 임영규
- libtins
- 폰폰테스트
- 픽크루
- 은혜의 강 교회
- 이상형 만들기
- 성남은혜의강교회
- 금리인하
- 김영권
- 유튜버 김재석
- 김영권 아내
- 고민정
- 불가피
- 학교 개학 연기 4월
- 스콜피온킹
- 홍혜걸
- 제넥신
- 뭉쳐야 찬다
- 킹덤 고근희
- 이태원 클라쓰 15회 예고
- 스페인 코로나
- 이지혜
- 미국 금리인하
- 리리남매
- 양적완화
- 최강욱
- 조희연
- 김재석
Archives
- Today
- Total
Dork's port
Python에서 Database 연동 및 사용 (mysql, mariadb) 본문
이전에 정리한 글이 너무 난잡해서 다시 정리해서 글을 작성한다.
이글에서는 연동을 위해서는 pymysql 사용하며 pymysql은 pip 명령어를 통해 설치가 가능하다 (pip install pymysql)
아래는 pymysql을 이용해서 database에 접속하는 class이다.
import pymysql
# dbconfig.py
class MysqlController:
def __init__(self, host, id, pw, db_name):
self.conn = pymysql.connect(host=host, user= id, password=pw, db=db_name,charset='utf8')
self.curs = self.conn.cursor()
def insert_value(self,table_name, values):
sql = 'INSERT INTO {0} VALUES ({1})'.format(table_name, ','.join(values))
self.curs.execute(sql)
self.conn.commit()
def insert_value_with(self,table_name, col, values):
sql = 'INSERT INTO {0}} ({1}) VALUES ({2})'.format(table_name, ','.join(col), ','.join(values))
self.curs.execute(sql)
self.conn.commit()
class 선언시 host , id, password, database 이름이 필요하며, 예제 코드를 통해 어떻게 인자로 전달하는지 확인할 수 있다.
예제를 위해 db.dork94.com에 test 데이터베이스를 추가하였다.
데이터베이스의 table에는 id와 password 저장을 위한 id, pw 필드가 있고 모두 문자열을 입력받도록 설계되어있다.
아래는 예제 테스트 코드이다. 이때 마지막 인자인 test는 database 이름이다. 원격에 있는 서버로 접속할 경우 localhost 대신 hostname 이나 ip를 적어주면 된다.
import dbconfig
if __name__ == '__main__':
mysql_controller = dbconfig.MysqlController('localhost', 'root', 'root-pass', 'test')
table_name = 'users'
mysql_controller.insert_value(table_name, ['"test"', '"test123"'])
mysql_controller.insert_value_with(table_name, ['id'], ['"THIS IS ID"'])
결과를 보면 정상적으로 추가된 것을 확인할 수 있다!
코드를 Github 등에 올릴때에는 database credential을 같이 올리지 않도록 주의하자!
코드는 github.com/JangHanbin/pymysql-basic에서 확인 가능하다,
'Develop' 카테고리의 다른 글
git : refusing to merge unrelated histories 에러 해결 (0) | 2022.04.26 |
---|---|
DATABASE 계정 생성 및 권한 주기 (외부에서 접속가능 계정 생성) (0) | 2020.12.14 |
Python) eyed3을 이용한 mp3 파일 tag 수정 (0) | 2020.12.07 |
error: invalid command 'bdist_wheel' 에러 (0) | 2020.12.04 |
Pyhon Class 테스트 (0) | 2020.07.16 |
Comments