전체 글
-
Django | Django Rest Framework - Customize User Model개발노트/Django 2023. 1. 13. 12:26
Django | Project Structure - djangorestframework Django | Project Structure - Backends Project Structure에 대한 글을 작성하면서 만들어두었던 ([project_name]을 account로 만들어뒀다) apps.account app을 본격적으로 사용해 User모델을 만들어 보려고 한다. User의 동작은 API를 통해서 관리할 것이기 때문에 djangorestframework를 이용하여 API를 개발할 것이다. Django는 pre-class로 많은 기능을 제공하는데 그 중 하나가 User모델과 그를 관리하는 기능이다. 해당 User은 django.contrib.auth.models로부터 import 할 수 있는데, 개발의 ..
-
Django | Project Structure - apps개발노트/Django 2023. 1. 12. 15:40
앞으로 프로젝트에서 사용하게 될 새로운 app을 apps라는 디렉토리를 만들고 그 안에 모아서 생성 및 사용하려고 한다. 우선 apps라는 python package를 project 디렉토리 안에 만들어보자. 아래 명령어는 project 디렉토리에서 실행하면 된다. (venv) /path_to_project/[project_name]> mkdir apps (venv) /path_to_project/[project_name]> cd apps (venv) /path_to_project/[project_name]/apps> mkdir [app_name] (venv) /path_to_project/[project_name]/apps> django-admin startapp [app_name] ./[app_nam..
-
Django | Project Structure - djangorestframework개발노트/Django 2023. 1. 12. 14:59
백엔드와 프론트엔트의 분리를 위해 API를 개발하여 사용하기위해 Django Rest Framework (DRF) 를 이용할 것이다. pip install djangorestframework 위 명령어를 사용하여 djangorestframework를 설치한 후 settings.py에 INSTALLED_APPS를 수정한다. # settings.py INSTALLED_APPS = [ ... 'rest_framework', ] INSTALLED_APPS를 수정하지 않으면, Django project가 rest_framework app을 인식하지 못 하여 DRF를 사용할 수 없다. DRF의 사용법은 따로 카테고리를 나누어 정리하는 편이 좋겠다.
-
Django | Project Structure - requirements.txt개발노트/Django 2023. 1. 12. 14:21
이미 이전 글에서도 여러 번 사용했고 Django를 사용한다면 익히 알고 있는 내용이겠지만, Django는 Python으로 개발된만큼 pip를 이용하여 라이브러리를 다운받아 사용한다. 프로젝트에서 다양한 라이브러리를 사용하게되지만, 사용한 모든 라이브러리를 일일히 기억하고 있을 수는 없다. 그래서 project 디렉토리에 현재 프로젝트에서 사용하고 있는 라이브러리에 대한 정보를 모아둘 것이다. pip에는 현재 사용 중인 라이브러리를 버전과 함께 정리해주는 명령어가 있는데 바로 freeze이다. requirements.txt 생성 pip freeze > requirements.txt 위 명령어를 사용하여 프로젝트에 필요한 라이브러리를 requirements.txt파일에 저장해둘 것이다. 이렇게 requir..
-
Django | Project Structure - settings.py (3) [optional]개발노트/Django 2023. 1. 12. 12:20
물론 지금까지의 모든 글이 대부분이 필수로 해야하는 건 아니지만, 이번에 쓸 내용은 조금더 선택적으로 사용해도 되는 부분이라는 생각이 든다. 개발을 하다보면 '개발용'과 '배포용'으로 settings.py를 구분하는데 보통 '개발용'은 DEBUG의 값을 TRUE로 설정하고, '배포용'은 FALSE로 설정한다. 서버를 실행하면서 어떤 settings.py를 사용하고 있는지 확인할 수 있는데, DEBUG 값에 따라서 사용하는 settings.py의 파일을 다르게 하여 보다 쉽게 '개발용'과 '배포용'을 구분할 수 있게 할 수 있다. 우선 각 상황에 맞게 사용할 두 버전의 settings.py을 만들어야한다. settings.py가 있는 디렉토리에 development.py와 production.py를 만든다..
-
Django | Project Structrue - settings.py (2)개발노트/Django 2023. 1. 12. 11:51
이전 글에서 한 것은 단순히 settings.py를 다른 디렉토리로 옮긴 것 뿐이지 민감한 데이터 (환경 변수)를 따로 떼어내진 않았다. 이번에는 python-dotenv 라이브러리를 사용해보려고 한다. 그러기 위해서 먼저 라이브러리를 다운받는다. pip install python-dotenv 라이브러리를 다운받고나면 project 디렉토리에 .env파일을 생성하여 아래와 같이 작성한다. # .env SECRET_KEY=... # settings.py 에서 쌍따옴표 없이 해당 값을 가져온다. DEBUG=... # settings.py 에서 쌍따옴표 없이 해당 값을 가져온다. python-dotenv 라이브러리의 도움을 받아 load_dotenv()라는 함수를 사용하면 .env 파일의 설정값을 os.env..
-
Django | Project Structrue - settings.py (1)개발노트/Django 2023. 1. 11. 18:31
Django 프로젝트에서 settings.py는 프로젝트 설정값을 저장해두는 파일이다. 문제는 이 settings.py 파일 내부에 SECRET_KEY와 같은 꾀나 중요한 값들도 포함된다는 점이다. 이러한 민감한 데이터들은 따로 떼어내서 최대한 외부로 노출되지 않도록 만들어주는 편이 낫다. [project_name] ├─.idea ├─[project_name] | | __init__.py | | settings.py | | asgi.py | | wsgi.py | | urls.py ├─backends ├─frontends ├─resources ├─venv | manage.py 지난 글에서 만들어 둔 디렉토리 트리는 위와 같다. [project_name]으로 적어둔 project app 디렉토리 내부에는 s..
-
Django | Project Structure - Test 환경 설정개발노트/Django 2023. 1. 11. 18:07
Django | Project Structure - Resources 지난 글에서 아래와 같은 디렉토리 트리를 구성하면서 마무리했었다. [project_name] ├─.idea ├─[project_name] ├─backends | └─apis | | views.py | | urls.py | | ├─frontends ├─resources | ├─static | ├─media | └─templates ├─venv | manage.py 최상위 디렉토리만 보자면 아래와 같다. [project_name] ├─.idea ├─[project_name] ├─backends ├─frontends ├─resources ├─venv | manage.py 그렇다. 아직 tests 디렉토리가 없다. 물론 django-admin..