[ 작업환경 ]
Flask 1.1
Python 3.7
필자는 flask-mysql 사용 중 발생했습니다.
< 에러 문구 >
MySQLdb._exceptions.ProgrammingError: not enough arguments for format string
< 원인 1 >
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute("INSERT INTO `pythondb`.`accounts` (`username`, `password`, `email`) VALUES (%s, %s, %s, %s)", (username, password, email))
mysql.connection.commit()
cursor.excute 라인에서 변수 %s는 4개인데, 넣으려는 데이터는 3개입니다. %s의 수가 더 많을 경우 발생, 숫자 맞춰서 수정해주면 해결됩니다.
< 원인 2 >
cursor.execute('SELECT * FROM users WHERE username = %s', (username))
위와 같이 잘못된 데이터를 %s에 넣으려는 경우 발생합니다.
(username) 은 튜플이고, 데이터를 하나만 가지고 있기 때문에 (username, ) 로 표기하거나, [username] 또는 username 으로 표기해야합니다.
cursor.execute('SELECT * FROM users WHERE username = %s', username)
cursor.execute('SELECT * FROM users WHERE username = %s', (username, ))
cursor.execute('SELECT * FROM users WHERE username = %s', [username])
'Development > Python' 카테고리의 다른 글
[Solved][Python] ModuleNotFoundError: No module named 'PIL' (0) | 2020.03.01 |
---|---|
[Centos7][Python3.7] How to install Python3.7 in Centos7 (0) | 2020.01.08 |
[Python][Pillow] 이미지 처리 관련 패키지 설치 및 활용 예시 (0) | 2020.01.01 |
[Solved][Python] OSError: cannot write mode RGBA as JPEG (0) | 2020.01.01 |
[Centos7][Python3] How to yum install python3 & pip3 - 레퍼지토리 추가하여 설치 진행 (0) | 2019.12.29 |