
334 Chapter 7
db
-
api 더 파헤치기
DB-API 자세히 보기, 3/3
insert
질의문으로 샘플 데이터를
log
테이블에 삽입합시다.
아래 여러 행에 걸쳐 만든 쿼리를 _
SQL
변수로 할당한 다음
cursor
.
execute
로 실행하고 싶을 거예요.
>>> _SQL = """insert into log
(phrase, letters, ip, browser_string, results)
values
('hitch-hiker', 'aeiou', '127.0.0.1', 'Firefox', "{'e', 'i'}")"""
>>> cursor.execute(_SQL)
위 코드는 물론 작동합니다. 하지만 매번
insert
문을 실행할 때마다 테이블에 저장하는 값이 달라지므로 위 코드처럼
삽입하려는 데이터 값을 하드코딩하는 것은 좋지 않습니다. 기억하세요. 우리 계획은 각 웹 요청을
log
테이블에 기록하는
겁니다. 즉, 매번
insert
를 실행할 때마다 값이 달라진다는 거죠. 데이터 값이 하드코딩되어 있다면 재앙이 일어납니다.
위처럼 데이터를 하드코딩하지 않도록 파이썬의
DB
-
API
는 질의 문자열에
‘
데이터 플레이스홀더
’
를 사용할 수 있도록
허용합니다. 데이터 플레이스홀더는
cursor
.
execute
를 호출할 때 실제 값으로 채워집 ...