python 스 택 개발 기초 지식 학습-Django 프레임 워 크(4.자주 발생 하 는 오류)
2319 단어 python 스 택 학습
질문 1:데이터베이스 변경
질문 2:No module named'MySQLdb'질문
질문
질문
질문 1:데이터베이스 변경
django 는 기본적으로 sqlite 데이터 베 이 스 를 사용 합 니 다.기본 값 은 sqlite 데이터베이스 구동 입 니 다.엔진 이름:django.db.backends.sqlite 3 입 니 다.MySQL 을 사용 해 야 한다 면 settings.py 의 내용 을 수 동 으로 수정 해 야 합 니 다.
해결 방법:
DATABASES, MySql。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books', #
'USER': 'root', #
'PASSWORD': '', #
'HOST': '', # , localhost
'PORT': '3306', #
}
}
문제 2:No module named'MySQLdb'
이것 은 django 가 기본적으로 가 져 온 드라이버 가 MySQLdb 이기 때 문 입 니 다.그러나 MySQLdb 는 py3 에 큰 문제 가 있 기 때문에 우리 가 필요 로 하 는 드라이버 는 PyMySQL 입 니 다.
그래서 우 리 는 프로젝트 이름 파일 에 있 는 만 찾 아야 합 니 다.init__,안에 쓰기:
해결 방법:
import pymysql
pymysql.install_as_MySQLdb()
문제 3:
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
해결 방법:
python
C:\Python37\Lib\site-packages\django\db\backends\mysql(python ) base.py, :
if version < (1, 3, 13):
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
문제 4:
File "C:\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
해결 방법:
: 146 decode encode
문제 5:
python 3.7+Django 2.1.3 을 사용 할 때 모델 류 관련 외부 키 를 만 들 때 다음 과 같은 오 류 를 보고 합 니 다.
Traceback (most recent call last):
xxxxxxxxxxx
TypeError: __init__() missing 1 required positional argument: 'on_delete'
해결 방법:
# `on_delete=`
student_grade = models.ForeignKey('Grades', on_delete=models.CASCADE)