티스토리 뷰
pymysql 라이브러리 설치하기
우선, MySQL과 연결하기 위한 라이브러리인 pymysql이 필요합니다.
pip install pymysql 명령어를 입력하여 라이브러리를 설치합니다.
DB 데이터 입력 프로세스

1. 데이터베이스(MySQL) 연결하기
import pymysql
conn = pymysql.connect(host=’서버 IP주소′, user=’사용자’, password=’암호′, db=’데이터베이스’, charset=‘사용할 문자셋’)
2. 커서 생성하기
cur = conn.cursor()
3. 명령어 전달하기
cur.execute(CREATE TABLE table(id char(4), userName char(15), email char(20), birthYear int))
execute()를 통해 실행하고 싶은 쿼리 문을 입력하여 DB에 전달합니다.
4. 입력한 데이터 저장하기
execute()를 전달했다고 해서 바로 데이터가 저장되지는 않습니다.
따라서, 영구적으로 저장하기 위해 commit()을 통해 저장합니다.
conn.commit()
5. 데이터베이스 닫기
이제 볼일이 끝났다면 데이터베이스를 닫아야 합니다.
conn.close()
사용 예시
import pymysql
import error
HOSTNAME = 'localhost'
USER = 'root'
PASSWORD = '1234'
DB = 'swenti'
CHARSET = 'utf8'
def con_db():
return pymysql.connect(host=HOSTNAME, user=USER, password=PASSWORD, db=DB, charset=CHARSET)
# 중복된 기사는 배제 (기준: 기사 제목, 언론사)
def check_duplicate_article(title, writer):
try:
conn = con_db()
cur = conn.cursor()
cur.execute("SELECT COUNT(*) FROM articles WHERE title = %s AND writer = %s", (title, writer))
# result 값이 Tuple 형태(0,)로 나오기 때문에 숫자 결과 값을 받아오기 위해 인덱스를 표기한다.
result = cur.fetchone()[0]
return result
# db connection error 발생 시
except Exception as err:
print("[Error]:" + str(err))
finally:
# connection 종료
conn.close()
def insert_article(title, details, link, media, writer, writed_date, image, site):
# try:
print(writed_date)
conn = con_db()
cur = conn.cursor()
# 중복된 기사 확인
isDuplicated = check_duplicate_article(title, writer)
if isDuplicated > 0:
raise error.Error("중복된 기사가 존재 합니다.")
cur.execute("INSERT INTO articles (title, details, link, media, images, writer, writed_date, site ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", (title, details, link, media, image, writer, writed_date, site))
# 반영한 데이터 commit
conn.commit()
conn.close()
# db connection error 발생 시
# except Exception as err:
# print("[Error]" + str(err))
# finally:
# connection 종료'Language > Python' 카테고리의 다른 글
| [Python]Selenium: get_attribute와 get_property의 차이 (1) | 2024.09.23 |
|---|---|
| [Python]Selenium: StaleElementReferenceException (0) | 2024.09.23 |
최근에 올라온 글
- Total
- Today
- Yesterday