bestwish
Hong's Tistory
bestwish
전체 방문자
오늘
어제
  • 분류 전체보기 (32)
    • DevOps (21)
      • Django (15)
      • TIL (2)
      • Python (2)
      • Git (0)
      • Docker (1)
      • Infra (1)
    • Algorithm (3)
      • 백준문제 (3)
      • 이론 (0)
    • CS (6)
      • Data Structure (6)

인기 글

최근 글

hELLO · Designed By 정상우.
bestwish
DevOps/Django

[Django] 프로젝트 세팅 ( + React )

DevOps/Django

[Django] 프로젝트 세팅 ( + React )

2022. 12. 16. 15:37

1. initial setting

1-1. 가상환경

  1. python -m venv venv를 이용하여 가상환경으로 만들기.

 

1-2. git init 적용

  1. git init을 이용하여 git 활성화
  2. .gitignore 생성하여 밑에 있는 url 복사.

https://www.toptal.com/developers/gitignore/api/django

 

1-3. backend - django 설치.

  1. pip install django 명령어를 이용한 django 설치.
  2. python -m django startproject <프로젝트명>
  3. python manage.py migrate
  4. python manage.py createsuperuser
  5. settigs.py 설정
# react에서 관리하는 파일 제외하고 css파일 등을 관리.
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# 이미지 등 파일 관리.
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

  6. project urls.py 설정

from django.conf import settings # 추가
from django.conf.urls.static import static # 추가
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
# DEBUG 옵션이 False면 static이 빈리스트를 반환 추가
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

  7. django prettier black 설치
      pip install black

  8. django 개발용 툴바 설치
      pip install django-debug-toolbar

      https://django-debug-toolbar.readthedocs.io/en/latest/installation.html

      settings.py는 위 링크를 참고.

# projects/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
]
# DEBUG 옵션이 False면 static이 빈리스트를 반환
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# 추가
import debug_toolbar
urlpatterns += [
path("__debug__/", include(debug_toolbar.urls)),
]

  9. settings.py 분리

      1. settings.py를 git mv <프로젝트명>/settings.py <프로젝트명>/settings/common.py 를 이용하여 이동.

      2. common.py를 열어, BASE_DIR 경로를 django프로젝트 최상단으로 맞게 수정한다.
          
BASE_DIR = Path(__file__).resolve().parent.parent.parent

      3. dev.py(개발용), prod.py(배포용)을 생성한다.

      4. 8번에서 설치한 debug_toolbar를 dev.py에서 사용할 수 있게 수정한다. (prod.py는 gunicorn 또는 nginx)

# dev.py
from .common import *
# common.py INSTALLED_APPS 맨 뒤에 추가.
INSTALLED_APPS += [
'debug_toolbar',
]
# common.py MIDDLEWARE 맨 앞에 추가.
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
] + MIDDLEWARE
INTERNAL_IPS = ["127.0.0.1"]

      5. 개발용인 manage.py와 배포용인 wsgi.py를 수정한다.

# manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.dev') # 수정 dev 붙여줌
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
# wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.prod') # 수정 prod 붙여줌
application = get_wsgi_application()

  10. SECRET_KEY분리

      1. https://django-environ.readthedocs.io/en/latest/quickstart.html django-environ 설치

      2. .env파일 프로젝트 최상단에 생성

      3. common.py 수정

      

# .env
SECRET_KEY=시크릿 키
# common.py
import environ
...
# 추가
env = environ.Env()
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY')
...

      

      

1-4 frontend - react 설치.

  1. npm create react-app <프로젝트명>
    yarn설치 방법 : npm insatll --global yarn
  2. css를 scss로 사용한다면 설치
    npm install --dev node-sass

 

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

[DRF] 이미지 URL 호스트, 포트 제거  (0) 2023.01.10
[DRF] Swagger 사용하기  (0) 2023.01.09
[Django] SENDGRID를 이용한 메일 보내기.  (0) 2022.11.10
[Django] HTTP 상태코드 응답  (0) 2022.05.24
[Django] ForeignKey  (0) 2022.05.17
  • 1. initial setting
  • 1-1. 가상환경
  • 1-2. git init 적용
  • 1-3. backend - django 설치.
  • 1-4 frontend - react 설치.
'DevOps/Django' 카테고리의 다른 글
  • [DRF] 이미지 URL 호스트, 포트 제거
  • [DRF] Swagger 사용하기
  • [Django] SENDGRID를 이용한 메일 보내기.
  • [Django] HTTP 상태코드 응답
bestwish
bestwish

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.