- nginx
- 스프링
- spring boot
- select
- AWS
- sql
- PYTHON
- 스프링부트
- @transactional
- jpa
- Django
- spring
- 자바
- join
- SSL
- mysql
- Docker
- string
- session
- java
- spring mvc
- springboot
- 1차원 배열
- Git
- spring security 6
- 데이터베이스
- ORM
- DI
- 프로그래머스
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
목록Python (13)
개발하는 자몽
우선 삭제 전에 가상환경을 만들어 놨다면 비활성화를 한 후, 가상환경을 제거한다. $ deactivate $ rm -rf {가상환경이름} 설치했던 파이썬의 위치를 확인해야 한다. 보통 `/usr/local/bin`에 위치한다. 아래 명령어로 특정 파이썬 버전의 디렉터리가 존재하는지 확인한다. $ ls -al /usr/local/bin 존재한다면 아래 명령어로 제거한다. 또한 파이썬과 함께 해당 버전을 가진 이름의 디렉토리가 있다면 해당 디렉터리 및 파일도 제거한다. $ sudo rm /usr/local/bin/{파이썬 버전} $ sudo rm /usr/local/bin/python3.8 파이썬 관련 디렉토리 또한 삭제해야 한다. 보통 `/usr/local/lib`에 위치한다. 3번과 마찬가지로 파이썬과 ..
백엔드 개발을 하면 DB 테이블(또는 DB 엔티티)을 도메인 엔티티로 옮겨야 되는데, 이는 `Entity`나 `Model` 등으로 표현하게 된다. 여기서는 Django의 `Model`을 다뤄보려고 한다. 각 DB 테이블에는 `created_at`이나 `updated_at`과 같은 공통된 필드가 들어가는 경우가 많다. 따라서 Entity나 Model에는 이 필드들이 반복해서 작성되는데, 생각보다 귀찮고 하다 보면 한 번에 처리할 방법이 없나 찾게 된다. Django에서는 `BaseModel`이라는 클래스에 이렇게 반복 작성되는 필드들을 모아서 선언한다. (SpringBoot 환경에서 JPA를 사용한다면 BaseEntity를 떠올릴 수 있다) BaseModel1. `manage.py`와 동일한 경로에 ..
Model.objects.filter() 지정된 조건에 해당하는 모든 객체를 포함하는 QuerySet 반환 조건에 해당하는 객체가 없는 경우, 에러가 아닌 빈 QuerySet 반환 results = Model.objects.filter(condition) if not results: # 쿼리셋이 비어있을 경우, 처리할 로직 Model.objects.filter().values() QuerySet에 있는 각 객체의 특정 필드 값을 가져와 딕셔너리 리스트로 반환 각 딕셔너리는 선택한 필드를 key로 사용 이를 이용하여 쿼리 결과에서 특정 필드만 가져올 수 있음 results = Model.objects.filter(condition).values('field_name') for result in result..
Swagger와 drf-yasg`Swagger`는 API 문서를 쉽고 간단하게 만들도록 도와주는 오픈 소스 도구이다. `drf-yasg`는 Django Rest Framework API로 Swagger/OpenAPI 2.0 Specification을 생성해 주는 라이브러리이다. 공식 문서는 이 글을 참고하자. drf-yasg 사용 방법Notice CBV에서 적용 작업하는 가상 환경에서 아래 명령어를 입력하여 `drf-yasg`를 설치한다. $ pip install -U drf-yasg 설치가 완료되었다면 `settings.py`에 아래 코드를 작성하자.INSTALLED_APPS = [ ... 'drf_yasg', ...] swagger UI의 css/js 파일이 필요하면 아래 코드로 ..
static file 관리 Django 프로젝트를 배포할 때 `DEBUG` 설정은 `False`로 설정하게 된다. 이미지가 저장된 경로로 API 요청하는 것에 대해서 `True`일 때는 `MEDIA_ROOT`와 `MEDIA_URL` 설정만 하면 이미지가 저장된 경로로 API 요청을 했을 때 200 응답을 받을 수 있다. 하지만 `False`일 때 요청을 하면 404 에러가 발생한다. static 파일 관리는 `INSTALLED_APPS`의 `django.contrib.staticfiles` 모듈이 담당하고 있는데, settings.py의 `DEBUG`를 `False`로 바꾸면 동작하지 않는다. 따라서 static 파일의 처리는 Apache나 Nginx와 같은 웹 서버가 담당하게 된다. 관련 내용은 여기를..
지난 글에서 외부에 노출되면 안 되는 정보는 `django-environ`을 통해 분리할 수 있다고 언급했다. django-environ은 환경 변수로 Django 애플리케이션을 구성할 수 있도록 해주는 파이썬 패키지다. 파이썬 패키지이므로 `pip`를 통해서 설치할 수 있다. django-environ 적용 가상 환경이나 작업 환경에 아래 명령어를 입력하여 `django-environ`을 설치해 보자. 참고로 그냥 `environ`도 있는데 이 친구가 아니다! 반드시 `django-environ`으로 설치! $ pip install django-environ `manage.py`와 동일한 위치에 `.env` 파일을 생성하자. 그리고 생성한 파일에 `key=value` 형식으로 외부에 노출하면 안 되는 ..
서버에서 개발을 하다가, 여러 명이 서버에 접근할 때 git이나 여러 설정이 꼬여서 개발 환경을 분리하기로 결정했다. SpringBoot는 `application.yml`이나 `application.properties`를 이용하여 개발 환경을 분리한다면, Django는 `settings.py`를 이용하여 개발 환경을 분리해야 한다. 구조 분리 전 설정이 담긴 프로젝트 구조는 아래와 같다. 📦backend ┣ 📜settings.py ┣ 📜asgi.py ┣ 📜exceptions.py ┣ 📜urls.py ┣ 📜wsgi.py ┗ 📜__init__.py 프로젝트 설정이 `settings.py` 하나로만 구성되어 있다. 이렇게 되면 로컬 환경이나 배포 환경의 설정이 동일하게 되므로 DB 접속이나 기타 설정 등을 할..
Request와 Requests `Request` : Django가 제공하는 객체로, HTTP 요청에 대한 다양한 정보를 담고 있음. `WSGI Reuqest` 타입 `Requests` : Python 모듈로 HTTP 요청을 보낼 때 사용 request.GET, request.POST `.GET()`, `.POST()` : Django 속성 `request.GET` : HTTP GET 메서드로 받은 요청 `request.POST` : HTTP POST 메서드로 받은 요청 `request`를 `dictionary type(Query Dict)`로 변환 `key` 이름을 가진 key가 존재하면 해당 `key`값을 반환하고, 존재하지 않을 경우 `KeyError` 발생 requests.get, requests..
목적`django-crontab`을 사용하여 쉽게 `crontab`을 적용해 보고, 도커 컨테이너에서 실행시켜 보자! cron & crontab & cronjob`cron` : 실행 도구`crontab`: `cron`이 실행할 일(job)이 담긴 파일`cronjob`: `crontab`에 작성한 일(job) django-crontab 설정 with Docker`pip`로 `django-crontab`을 설치합니다. pip install django-crontab 설치 후 `settings.py`에 아래 코드를 추가합니다.INSTALLED_APPS = [ ... 'django_crontab',]...CRONJOBS = [ ('*/30 * * * *', 'app.cron.hello', '>> /..
Windows에서 가상 환경(virtual environment)과 Django를 설치해 보자! 이 글에서는 virtualenv로 가상 환경을 설치하는 것을 다룬다. Notice Django 설치 전 3.6 버전 이상의 파이썬이 설치되어 있어야 한다. Django The web framework for perfectionists with deadlines. docs.djangoproject.com 가상환경 설정 1. 가상 환경을 만들고자 하는 위치로 이동한다. 보통 C:\Users\user에서 많이 진행한다. 2. 이동 후 cmd에서 아래 명령어를 입력하자. 이 명령어를 통해 virtualenv를 설치한다. 참고 virtualenv는 파이썬 프로젝트마다 쉽게 독힙 환경을 구성할 수 있게 해주는 CLI 도..