본문 바로가기
반응형

Django24

Django - Uwsgi 웹 서버, StaticFile과 함께 구동하기 Django 배포이후 Django자체적으로 추천하는 방법은 Uwsgi를 혹은 asgi만으로도 충분히 구현이 가ㄴ 필자 역시 Django를 통해 파일 처리를 마무리 하였다면 Django의 성능을 제대로 활용하기 위해서는 Django 자체 엔진은 성능이 좋지 않기 때문에 Uswgi를 활용할 수 있는 방법을 고민하였다. 다만 보통 웹 서버의 StaticFile은 Nginx를 통한 처리를 한다. 여기에서는 Uwsgi 자체적인 처리 방안을 통해 Nginx가 굳이 필요하지 않은 단순한 서비스(CDN을 주로 사용하거나, API 위주의 사이트) 일 경우 Uwsgi 만으로 간편히 실행할 수 있는 방안을 고민하던중, Static 파일 처리하는 부분에 대해 정리해 본다. uwsgi는 가장 기본적인 구동 방법은 다음과 같이.. 2023. 1. 10.
Django - Static(collectstatic) 배포 하기 Django에서 배포를 위해 Static 파일을 모으는 작업(python manage.py collectstatic)을 할 때 발생하는 가장 흔한 에러 2가지에 대해서 해결 방법을 정리해 본다. python manage.py collectstatic 일반 적인 에러는 2가지에 대해서 해결 방법을 정리해 본다. ?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting. 이 에러는 STATICFILES_DIRS 정보가 STATIC_ROOT에 포함되어 있기 때문에 발생하게 된다. 이 문제의 발생 원인은 STATIC_ROOT에 STATICFILES_DIRS 경로가 포함되어 있기 때문에 발생하게 된다. .. 2023. 1. 10.
Django - CSRF 등록 CSRF_TRUSTED_ORIGINS Vue 와 Django 연동 개발을 하던중, Proxy 요청으로도 해소가 되지 않는 부분이 바로 POST 요청이다. Vue와 같은 Nodejs에서 사용하는 axios의 경우 헤더에 CSRF 토큰을 쉽게 생성할 수 있지만, 잘 적용되지 않는 경우(필자와 같은 경우) Django에서 신뢰 영역으로 설정해주는 것이 좋다. Django 에서 CSRF 설정은 CSRF_TRUSTED_ORIGINS 환경변수를 settings.py에 구성하면 된다. 주의할 점은 http 를 포함하여 포트정보까지 입력해야 적용이 가능하다. 만약 요청인 http://localhost:8080 이라면 8080까지 포함하여 아래와 같이 적용해야 한다. settings.py CSRF_TRUSTED_ORIGINS = ['http://192.16.. 2023. 1. 9.
Django - n:n prefectch_related, n:1 select_related Django를 이용해서 모델링을 구성할 경우 이후 쿼리에서 관계 데이터 조회에 많이 사용되는 prefectch_related, select_related 에 대해서 짧게 알아보고자 한다. select_related, prefetch_related 모두 원본 데이터 검색후 관계 데이터를 조회하는 함수로써, 2번 T-SQL을 호출 하는 구조로 생각하면 된다. select_related - Single Object(One-to-One or Many-to-One) - 정참조 Foreign Key 사용 하나의 관계 데이터를 가져오는 것을 의미한다. Join 문을 이용하여 관계 필드를 가져온 이후에 select ... from 문을 이용해서 가져오는 것으로 확인된다. Django Docs를 살펴보면, select_.. 2022. 12. 28.
Django - Invalid HTTP_HOST header 해결 ALLOWED_HOSTS 이문제는Django 에서 허용하는 호스트(ALLOWED_HOSTS)로 설정이 되어 있지 않아서 발생하는 문제라고 할 수 있다. 문제 해결 방법은 간단하다. 프로젝트 파일의 settings.py의 ALLOWED_HOSTS 에 접근하는 Domain 혹은 IP 정보를 입력해주면 끝이다. 아래 공식 문서를 통해 확인하면, USE_X_FORWARDED_HOST 등을 확인할 수 있다. 설정 | 장고 문서 | 장고 (djangoproject.com) Django The web framework for perfectionists with deadlines. docs.djangoproject.com 2022. 12. 13.
Django - ForeignKey onetomany, onetoone, manytomany 이해하기 Django를 이용하여 Database를 구현하고자 할 때 가장 기본적으로 관계 구조를 생성하게 된다. 이때 참고해야할 사항이 바로 관계의 유형으로 대표적인 3가지 관계에 대해서 이해해보도록 하겠다. 그리고 크게 2가지로 상황을 나눌 수 있다. onetomany, onetoone - 하나가 여러개와 연결되는 관계 - 하나가 하나와 연결되는 관계 manytomany - 여러개가 다른 여러개와 연결되는 관계 1. onetomany ForeignKey를 이용하여 연결이 가능 Owner 하나에 여러개의 Post가 연결되는 관계 가장 많이 사용되는 관계도라고 할 수 있다하다. 예제에서는 로 표현해보고자 한다. 이를 위해 blog라는 App에 다음과 같은 models을 작성하였다. blog/models.py fro.. 2022. 12. 5.
Django - Token 인증 기본 활용법 Django는 대표적으로 3가지 인증을 사용할 수 있다. 1. BasicAuthentication(기본인증): Username과 Password 방식을 이용하여 기본적으로 사용이 가능한 인증 방식 2. SessionAuthentication(세션인증): Username과 Password 방식을 이용시 인증 쿠키와 연견된 세션을 이용 3. TokenAuthentication(토큰인증): Username과 Password 대신 Username별 고유한 Token을 통해 인증을 진행 AuthToken을 설치하면 사용이 가능하다. 이중 API를 통해 인증을 진행하는 경우 기본인증은 계속 Username과 Password 를 이용하기 때문에 선호되지 않으며, 세션인증은 보통 session ID를 활용하여 인증을 .. 2022. 11. 29.
Django - Celery로 비동기 Async Task 구성하기 앞서 진행한 Celery 구성을 통해 간단한 비동기 Task를 예제를 통해 사용해 보고자 한다. 기본적인 Celery를 구성하는 부분은 아래 내용을 참고하기 바란다. Django - Celery 구성하기 (asecurity.dev) Django - Celery 구성하기 Python에서 Celery가 비동기 작업 관리로 많이 사용되고 있어, Django 프로젝트에 도입하기 위해서 사용해 보았다. 구성하는 부분에 약간의 정리가 필요하여 해당 내용을 정리할 겸 글을 작성한다. 1. asecurity.dev 그럼 위 기본 설정이후 Task를 구성해보도록 하겠다. 여기에서는 추가로 생성한 blog 앱에 Task를 구성할 예정이며, 이를 위해 기존 blog/tasks.py 내용을 아래와 같이 수정하였다. 작업은 테.. 2022. 11. 21.
Django - Celery 구성하기 Python에서 Celery가 비동기 작업 관리로 많이 사용되고 있어, Django 프로젝트에 도입하기 위해서 사용해 보았다. 구성하는 부분에 약간의 정리가 필요하여 해당 내용을 정리할 겸 글을 작성한다. 1. 가상환경 구성 가장먼저 기본적인 가상 환경을 구성한다. 세부적인 내용은 아래를 참고하기 바라며 여기에서는 관련 명령어들만 정리하였다. Django - 프로젝트 시작하기 여기에서는 Django 프로젝트를 처음 시작할 때 어떻게 준비하고 시작하는 게 좋은지 간단하게 정리해보고자 한다. 1. 가상 환경 만들기 가장 먼저 해야 할일은 독립 환경을 만드는 것이다. Python - V asecurity.dev C:\Users\Users\python\celery>python -m venv mycelery C:.. 2022. 11. 18.
반응형