728x90 반응형 Dev./Django & DRF13 Django: select_related, prefetch_related, only & defer 면접 때 나왔었던 질문: Have you ever used "the prefetch_related or select_related" function in order to optimize DB access ?? https://docs.djangoproject.com/en/4.2/ref/models/querysets/#django.db.models.query.QuerySet.select_related Django The web framework for perfectionists with deadlines. docs.djangoproject.com select_related() foreignKey 나 OneToOneField 와 같은 단일 관계 필드에서 사용된다. JOIN 연산을 이용하여 연관된 객체를 미리 .. Dev./Django & DRF 2023. 11. 10. Django: mysqlclient connection Meta 수업을 듣다가 mysql 을 사용해서 DB 를 연결해야하는 부분이 있었는데 pipenv 로 가볍게 설치해서 진행하면 되겠지 싶었다. 그런데 예상치 못한 에러가 계속해서 발생했다. [pipenv.exceptions.InstallError]: Collecting mysqlclient==2.2.0 (from -r /var/folders/3t/xyg5mpbn57dchy7qksj9n2vr0000gn/T/pipenv-_macr11_-requirements/pipenv-hu_mma6k-hashed-reqs.txt (line 1)) [pipenv.exceptions.InstallError]: Using cached mysqlclient-2.2.0.tar.gz (89 kB) [pipenv.exceptions.I.. Dev./Django & DRF 2023. 11. 4. Django: S3 호환 서비스 NCP object storage 에 이미지 저장 Django 프로젝트에서 이미지 핸들링하기 이미지 파일을 DB 에 저장하기엔 용량이 크기 떄문에 클라우드 Object Storage 에 저장해서 url 로 가져다 쓴다. NPC 는 관련해서 AWS S3 호환 서비스 Object Storage 를 제공하고 있기 떄문에 사용해보려고 한다. AWS S3 AWS boto3 를 이용한 파일 업로드 boto3 는 AWS 를 위한 Python SDK (Software Development Kit) 이다. 사용하면 AWS 서비스에 쉽게 액세스 할 수있다. NCP 의 Object Storage 와 같은 S3 호환 서비스에도 사용이 가능하다. Object Storage API Object Storage API api.ncloud-docs.com 간단한 사용 방법 HTTP/.. Dev./Django & DRF 2023. 10. 19. Django: ‘WSGIRequest' object has no attribute 'data' ‘WSGIRequest' object has no attribute 'data' 에러는 DRF 와 헷갈려서 자주 마주치는 에러 현상 Django 의 WSGIRequest 객체에 data 속성이 없다는 뜻. 일반적으로 Django 의 HttpRequest 객체에서 data 에 접근할 때 발생 data → POST 로 HttpRequest 에 맞게 변경 request.data.get("image") request.POST.get("image") data 는 일반적으로 restframework 에서 사용됨 Dev./Django & DRF 2023. 10. 18. [Cloud] Django: Code develop for TEST2 Github Actions 에서 work flow 를 분리했다. 이제 django 쪽에서 test 를 위한 일부 코드를 작성해 보자. TEST 를 위한 기능 디벨롭, 그리고 테스트 코드 실행 현재 제공하고 있는 기능은 Topic 을 생성하고 그 아래에 Post 들이 One to Many 의 형태로 묶여있는 구조이다. 또 부여된 그룹에 따라 권한이 달라져 접근하거나 작성하는데 제한을 두고 있다. 이 부분들을 테스트 하기 위해서는 유저를 생성하면서 권한을 부여하고, Topic 과 Post 를 생성하는 과정에서 권한을 체크하는 로직이 필요할 것이다. 이를 테스트 하기 위해서 로직을 구현해보자 장고의 로직 자체는 클라이언트가 urls 를 통해 요청을 보내면 views 에서 모델과 templates 을 엮어주는 .. Dev./Django & DRF 2023. 8. 31. Django : DRF 적용하기3 - Spectacular API 로 개발하는데 프론트 역할을 대신해줄 수 있는 기능이 담겨 있는 라이브러리를 사용하여 쉽게 기능동작을 확인할 수 있다. install pip install drf-spectacular pip freeze | grep drf-spectacular >> requirements.txt settings.py third party app 추가 ## Third party Apps INSTALLED_APPS += [ 'rest_framework', 'drf_spectacular', ] REST_FRAMEWORK 추가 REST_FRAMEWORK = { ... # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access.. Dev./Django & DRF 2023. 8. 16. Django : DRF 적용하기2 Forumapp DRF DRF 의 핵심은 serializing 을 아주 간단하게 하는 라이브러리들을 쓸 수 있다는 점이다. 모델을 정의해서 models.Models 로 상속 받아서 사용 rest_framework 를 설치해서 serializers 에 적용 serializer.ModelSerializer 를 상속받아 ModelSerializer 생성 view 에서 해당 시리얼라이저를 사용하여 클래스를 만들고 ModelViewSet 을 상속 마지막으로 urls 에 router 로 연결해줌 model 설정 → models.Model 상속 serializer 설정 → request 와 response 를 프레임 워크로 바로 바로 JSON 형식으로 바꿔서 보내고 받을 수 있게 해주는 설정 views 설정 → re.. Dev./Django & DRF 2023. 8. 16. Django : DRF 적용하기 설치 후 requirements 에 삽입 pip install djangorestframework pip freeze | grep djangorestframework >> requirements.txt # requirements.txt Django==4.2.3 gunicorn==21.2.0 psycopg2-binary==2.9.7 pymongo==4.4.1 djangorestframework==3.14.0 settings.py ## Third party Apps INSTALLED_APPS += [ 'rest_framework', ] project - urls.py urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include(blog_url.. Dev./Django & DRF 2023. 8. 15. Django : DRF - quick start set up environment mkdir tutorial cd tutorial python3 -m venv venv source venv/bin/activate install frameworks pip install django pip install djangorestframework create project and app django-admin startproejct tutorial cd tutorial django-admin startapp quickstart # also, the below can be used to start an app python3 manage.py startapp quickstart migrate python3 manage.py migrate create super us.. Dev./Django & DRF 2023. 8. 15. Django : 시작하기 환경설정은 되어 있다는 가정하에 바로 Django 프로젝트를 생성한다. 터미널에서 django 라이브러리를 설치하자. pip install django django 프로젝트를 생성한다. demoproject django-admin startproject demoproject myproject 경로로 이동 후에 cd demoproject # 프로젝트 파일구조 \\demoproject │ manage.py │ └───demoproject asgi.py settings.py urls.py wsgi.py __init__.py DB 설정을 해주고 서버를 실행시켜 본다. python3 manage.py makemigrations python3 manage.py migrate python3 manage.py runs.. Dev./Django & DRF 2023. 8. 9. Django : 프로그램 구조 이해하기 Django 는 파이썬으로 웹프로그래밍을 할 수 있는 아주 실용적인 프레임워크이다. 하지만 아무리 프레임워크라고 하더라도 개발자마다 회사마다 적용하는 프로그램의 구조자체는 다를 수 있다. 그 와중에 Django 에서 제공하는 기본적인 틀과 데이터가 움직이는 과정들을 살펴보자. Django 는 프로젝트 아래 애플리케이션들이 추가되는 형태를 가지고 있다. config 는 Django 로 프로젝트를 열어서 생성되는 기본적인 “틀”에 가깝다. “pybo” 는 틀 안에 생성된 서비스로 보면 된다. config - settings 내에서 우선 ALLOWED_HOSTS 에 IP 주소를 등록해서 CORS 접근이 가능하도록 설정하는게 좋다. config - urls 내에서 먼저 서비스에 사용할 URL 을 등록해 놓고 “.. Dev./Django & DRF 2023. 8. 2. Django : 장고에 대해서 2003 년 로렌스 저널-월드 신문을 만들던 웹 개발팀의 내부 프로젝트로 시작했다. 2005년 오픈소스 프로젝트로 공개됐다. 구글의 웹 애플리케이션 엔진에 장고가 사용되면서 인기를 얻었다. 제공하는 기능이 풍부하여 쉽고 빠른 웹 개발이 가능하다. 장고의 특징 MVC(Model - View - Controller) 패턴 기반 MVT(Model - View - Template) 객체 관계 매핑 자동으로 구성되는 관리자 화면 우아한(?) URL 설계 자체 템플릿 시스템 캐시 시스템 다국어 지원 풍부한 개발 환경 소스 변경 사항 자동 반영 MVT 패턴 MVT 패턴에 맞게 처리하는 과정 클라이언트로부터 요청을 받으면 URconf 를 이용하여 URL 을 분석 URL 분석 결과를 바탕으로 해당 URL 처리를 담당할 .. Dev./Django & DRF 2023. 7. 22. 이전 1 2 다음 728x90 반응형