settings.py

초기설정

  1. Allowed_hosts

ALLOWED_HOSTS = ['*']

  1. Time_zone

TIME_ZONE = 'Asia/Seoul'

  1. INSTALLED_APPS

cors 설정

CORS란? (Crosss-Origin Resource Sharing)

웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조

  1. django-cors-headers 설치

pip install django-cors-headers

  1. settings.py 에 설정 추가
INSTALLED_APPS =[
    'corsheaders', # CORS 관련 추가
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware', # CORS 관련 추가
]

# CORS 관련 추가
CORS_ORIGIN_WHITELIST = ['http://127.0.0.1:3000' ,'http://localhost:3000'] 
CORS_ALLOW_CREDENTIALS = True

MIDDLEWARE에 CorsMiddleware를 최상단에 기입해준다.

CORS_ORIGIN_WHITELIST에 연동할 ip와 포트를 적어준다.

mysql 연결

https://mugon-devlog.tistory.com/28

[

[Django] app, mysql 추가 및 연결

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 f..

mugon-devlog.tistory.com

](https://mugon-devlog.tistory.com/28)

static path 추가

STATIC_URL = "/static/"

# collectstatic 명령어로 모이는 static 파일들을 모을 위치
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")

STATICFILES_DIRS = [
    BASE_DIR / "static",
]

# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"

LOGIN_REDIRECT_URL = reverse_lazy("home")
LOGOUT_REDIRECT_URL = reverse_lazy("accountapp:login")

MEDIA_URL = "/media/"

MEDIA_ROOT = os.path.join(BASE_DIR, "media")

root 폴더위치에 static 폴더 생성

728x90

'Study > Django' 카테고리의 다른 글

[Django] 환경 변수 분리하기 django-environ  (0) 2021.05.18
[Django] Views, Generic Views, Viewset  (0) 2021.05.11
[Django] Serializers  (0) 2021.05.11
[Django] models.py  (0) 2021.05.10
[Django] app, mysql 추가 및 연결  (0) 2021.05.10

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

'Study > Django' 카테고리의 다른 글

[Django] settings.py - cors, static path  (0) 2021.05.11
[Django] Serializers  (0) 2021.05.11
[Django] models.py  (0) 2021.05.10
[Django + pycharm] 개발환경 세팅  (0) 2021.05.02
Python 가상환경 설치 및 비교  (0) 2021.05.02

+ Recent posts