사용법이 아주 간단하다.
출처: github PyMySQL
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
database='db',
cursorclass=pymysql.cursors.DictCursor)
with connection:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO users (email, password) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
row_id = cursor.lastrowid
# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT id, password FROM users WHERE email=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
출력 결과
{'password': 'very-secret', 'id': 1}
추가된 행의 id를 알고 싶다면 cursor.lastrowid로 확인할 수 있다.
예제에는 INSERT만 있다, INSERT, UPDATE, DELETE 마찬가지이기 때문으로 보인다.
아래 예처럼 mysql_config 따로 저장해두고
mysql_config = {
'user': os.getenv('MYSQL_USER'),
'password': os.getenv('MYSQL_PASSWORD'),
'host': os.getenv('MYSQL_HOST'),
'database': 'MYSQL_DB',
'cursorclass': pymysql.cursors.DictCursor
}
불러서 쓰면 유지보수가 간편해진다.
connection = pymysql.connect(**mysql_config)
mysql.connector보다 코드가 단순하다.
출처: Querying Data Using Connector/Python
위 코드 예처럼 매번 귀찮게 close()를 해줘야 한다. 그래서 이 팩키지를 쓰지 않고 PyMySQL을 많이 쓰는 거 같다.
참고로 구글 앱 엔진 장고 샘플 파일을 살펴보면 pymysql을 쓰고 있는 것을 볼 수 있다.
잘 모르겠으면 유명한 개발자들이 쓰는 거, 사람들이 제일 많이 쓰는 걸 쓰는 게 안전하다.
(출처: standard_python3/django/mysite/settings.py)