일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 유튜버 김재석
- 김재석
- 스콜피온킹
- 학교 개학 연기 4월
- 킹덤 고근희
- 김영권
- 제넥신
- 금리인하
- 이지혜
- 최강욱
- 양적완화
- 픽크루
- 리리남매
- 조희연
- libtins
- 스페인 코로나
- 이태원 클라쓰 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