FrameWork/Django

FrameWork/Django

django-seed을 통해 더미데이터 만들기

이번에는 django-seed 라이브러리를 통해 더미 데이터를 만들어 비어있는 DB 채워주는 것을 알아보고자 한다. django-seed django-seed는 Faker라이브러리를 사용하여 django 모델에 대한 테스트 데이터를 생성해 주는 라이브러리이다. 설치 터미널을 통해 설치한다. 참고로 psycopg2를 설치하니 오류가 발생하여, 바이너리 버전인 psycopg2-binary을 설치하여 진행하였다. pip install django-seed pip install psycopg2-binary 그다음 settings.py에 들어가 앱을 등록한다. INSTALLED_APPS = ( ... 'django_seed', ) 아래 명령어를 통해 다음 생성하고자 하는 앱과 --number 옵션을 작성하여 더미..

FrameWork/Django

settings.py 분리하여 관리하기

Settings.py을 분리한다는 것이 무슨 말이죠? 장고를 사용하다보면 기능 구현을 위해 여러 라이브러리나 모듈, 미들웨어 등을 추가하면서 몸집을 키워나가게 되는데 이 과정에서 settings.py 파일의 크기가 커진 나머지 내가 어떤 것을 추가하였는지 대해 찾기도 어려울 뿐더러, 배포을 할때에는 사용자에게 보여주면 안되는 세부정보들을 제공하지 않기 위해 개발용 세팅과, 배포용 세팅을 따로 둘 필요성이 있습니다. 따라서 이런 이유로 장고 개발자들은 본래 프로젝트를 시작하면 만들어지는 settings.py을 settings 라는 폴더를 만들고 그 안에 common.py, prod.py 등으로 쪼개서 관리하시는 식으로 프로젝트를 관리하고 있습니다. 한문장으로 설명하자면 : 그냥 프로젝트에 사용되는 설정 코..

FrameWork/Django

dumpdata와 loaddata을 통해 DB데이터 추출, 적재하기

이걸 왜 사용하나요? 장고에서 DB을 사용하다 보면, 성능이나 다른 이슈로 인해 다른 DB에 데이터를 옮겨야 하는 상황이 발생하기도 합니다. 이때 dumpdata와 loaddata을 활용한다면 쉽게 DB에서 데이터를 추출하고 적재할 수 있습니다. dumpdata : DB 데이터 추출 dumpdata 명령어를 실행한 뒤 출력되는 데이터를 파일로 추출하는 방식입니다. 해당 명령을 실행하면 dumpdata로 반환되는 값을 data.json 이름의 파일로 보내면서 참고로 data.json 말고 다른 이름으로 변경하여 사용이 가능합니다. python manage.py dumpdata > data.json 특정 장고 앱의 데이터만 저장한다면 dumpdata 뒤에 앱 이름을 입력합니다. python manage.py..

FrameWork/Django

장고(Django) 프레임워크 소개와 프로젝트 생성하기

파이썬은 빅데이터 영역뿐만 아니라 GUI, Web 분야에서도 쉬운 사용법과 직관적인 문법 덕분에 많은 사용자들이 즐겨 사용하고 있는 언어 중 하나이다. 그중 Web 영역에서 파이썬을 사용하려면 프레임워크를 이용하여 프로젝트를 진행하게 된다면 쉽게 웹사이트를 구축하고 운영할 수 있다. 파이썬으로 활용할 수 있는 프레임워크는 Django, Flask, Fastapi.. 등등 많은 종류가 있지만 그중에서도 어느 정도 완성적으로 기능들을 제공하는 Django 프레임워크에 대해 이야기해보고자 한다. 프레임워크 일단 장고에 대해 알아보기 전에 프레임워크가 무엇인지에 대해서 살펴보자. 프레임워크란 "어떠한 목적을 달성하기 위해 복잡하게 적혀 있는 문제를 해결하기 위한 구조"라고 설명하곤 한다. 그리곤 항상 뜨겁게 나..

FrameWork/Django

Forbidden (403) CSRF verification failed 오류 해결하기

상황 Django을 서버에 올려서 배포 한 후에 admin 페이지에서 로그인을 할 때, Http통신에서 Post 메소드를 사용할 때 403 에러를 일으키며 Forbidden (403) CSRF verification failed 로그를 보게 됬다. 해결 Django는 서버가 공격받는 것을 방지하기 위해 CSRF 토큰이 존재하는 이들의 POST요청을 받아드리고, 그 이외는 보안을 위해 권한을 허락하지 않는다고 한다. Django 4.0 이상 부터는 CSRF_TRUSTED_ORIGINS을 이용하여 CSRF 대한 권한을 허락 할 수 있다. CSRF_TRUSTED_ORIGINS = ['stie_address'] https://velog.io/@gene028/%EA%B0%9C%EB%B0%9C%EC%9D%BC%EC..

FrameWork/Django

DRF FBV, CBV (APIView, Mixin, Generic, Viewset)

DRF에서 뷰를 나타내기 위해서는 2가지의 방법이 있는데 하나는 함수 기반 뷰(Function Base View)와 다른 하나는 클래스 기반 뷰 CBA(Class Base View)가 있습니다. 기본 속성 함수 기반 뷰와 클래스 기반 뷰를 다루기전에 둘이 공통적으로 제공하는 속성 값이 있는데 아래와 같습니다. renderer_classes (직렬화 클래스) - JSON 직렬화 : rest_framework.renderers.JSONRenderer - HTML 직렬화 : rest_framework.renderers.TemplateHTMLRenderer parser_classes (비직렬화 클래스) - JSON 포맷 처리 :rest_framework.parsers.JSONParser - FormParser ..

FrameWork/Django

DRF에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링 사용 방법

Django Rest Framework에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링을 사용하기 위해서는 django-filter 라이브러리가 필요하다. django-filter Docs : https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend Filtering - Django REST framework www.django-rest-framework.org 일단 위의 공식문서를 따라서 작성하자면 아래와 같다. 🖥️ settings.py INSTALLED_APPS = [ ... 'django_filters', ... ] REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKEND..

FrameWork/Django

[Django] User Model 확장하기

📚 django UserModel Django 에서는 표준 User Model을 제공하고 있다. 해당 User Model은 django.contrib.auth.models.User에 다음과 같이 정의 되어 있다. class User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' 아래는 User 모델에서 정의되어 있는 칼럼들이다. username = models.CharField() first_name = models.CharField() last_name = models.CharField() email = models.EmailField() is_staff = models.BooleanField() is_active..

FrameWork/Django

django-environ을 이용하여 환경변수 관리하기

django-environ 대게 django을 하다보면, 남들에게 보여주면 안되는 API_KEY 값들이나 다른 중요한 값들이 존재하기 마련이다. 따라서 이런 값들을 따로 관리해야하는 필요성을 알게되는데 이를 도와주는것이 djago-environ이다. 일단 django-envirion을 설치한다. pip install django-environ 그 다음 프로젝트 안에 .env 라는 파일을 생성 한 뒤, 파일안에 변수와 값을 기입한뒤, settings.py 에서 사용한다. 📕 .env SECRET_KEY='django-insecure-n&(433#pnjvih&mmil99u666&5cm*d0_o$@*cj41934u=$w7*q' DEBUG=True 🔖.env 파일에 값을 넣을때 변수와 값 사이에 뛰어쓰기가 존재..

JHeaon
'FrameWork/Django' 카테고리의 글 목록