Study/Django

[Django] app, mysql 추가 및 연결

MG_conny 2021. 5. 10. 08:37

1. user, board app 추가

# user app 추가
django-admin startapp user

# board app 추가
django-admin startapp board

2. rest framework 추가

pip install djangorestframework

3. settings.py 설정

app, rest frame work 추가

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 아래부분 추가
    'user',
    'board',
    'rest_framework',
]

mysql 추가

pip install mysqlclient

 

mysqlclient 설치오류
아래와 같은 오류가 발생할때

Could not find a version that satisfies the requirement mysqlclient


mysql이 환경변수에 등록되지 않아서 발생할 수 있음

  1. 확인
which mysql_config

 

  1. zshrc 경우 (vscode 설치)
code ~/.zshrc

# 환경변수 등록
export PATH=$PATH:/usr/local/mysql/bin

 

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # mysql 엔진 설정
        'NAME': 'blog', # 데이터베이스 이름
        'USER': 'root', # 데이터베이스 연결시 사용할 유저 이름
        'PASSWORD': 'password', # 유저 패스워드
        'HOST': 'localhost',
        'PORT': '3306'
    }
}

 

migrate 할때 NameError: name '_mysql' is not defined 에러

  1. 원인
brew 로 mysql-client 를 설치한 경우 /usr/local/mysql/bin/mysql/lib의 경로에 cpython-38-darwin.so 파일이 위치해 있는데, 파이썬에서 찾지 못해서 에러가 난다. 간단하게는 심볼릭 링크를 만들어주면 해결이 된다.


2. 해결 환경변수 등록

code ~/.zshrc

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH

 

db 연결 확인

python manage.py migrate
728x90