django 와 mysql을 붙여서 개발을 하는 와중에 한글 데이터를 입력하자 아래와 같은 에러가 발생했다.
self.errorhandler(self, exc, value)
File "/home/swot/venv/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/home/swot/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/home/swot/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/home/swot/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/home/swot/venv/lib/python3.6/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1366, "Incorrect string value: '\\xE8\\xAE\\xBE\\xE5\\xA4\\x87' for column 'name' at row 7")
이는 인코딩 에 관한 문제였는데 Django가 테스토용 데이터베이스를 만들 때 character set을 UTF-8 로 설정하지 않아서 한글 insert를 실행하는 경우 발생하는 문제였다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'YOUR_DATABASE_NAME',
'USER': 'YOUR_USER',
'PASSWORD': 'YOUR_PASSWORD',
'HOST': '127.0.0.1',
'PORT': '',
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
}
}
}
'프로그래밍 > language' 카테고리의 다른 글
django blank=True 와 Null=True 의 차이 (0) | 2021.04.04 |
---|---|
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun (0) | 2020.09.27 |
setup.py vs requirements.txt (0) | 2019.12.29 |
단위 테스트 pytest-django 튜토리얼 - [3] (0) | 2019.10.05 |
단위 테스트 pytest-django 튜토리얼 - [2] (0) | 2019.08.04 |