1. initial setting
1-1. 가상환경
- python -m venv venv를 이용하여 가상환경으로 만들기.
1-2. git init 적용
- git init을 이용하여 git 활성화
- .gitignore 생성하여 밑에 있는 url 복사.
https://www.toptal.com/developers/gitignore/api/django
1-3. backend - django 설치.
- pip install django 명령어를 이용한 django 설치.
- python -m django startproject <프로젝트명>
- python manage.py migrate
- python manage.py createsuperuser
- 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 설치.
- npm create react-app <프로젝트명>
yarn설치 방법 : npm insatll --global yarn - 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 |