분류 전체보기

Django

장고 Q를 활용한 필터링, 정렬, 검색 방법

장고의 filter()에서 처리하는 키워드 아규먼트는 기본적으로 & (AND) 형식입니다. | (OR)와 같은 보다 복잡한 쿼리를 처리하려면 Q 객체를 사용할 수 있습니다. Q 객체(django.db.models.Q)는 키워드 아규먼트를 처리하기 위한 객체입니다. Q 객체 사용 방법 Q 객체를 사용하기 위해서는 장고의 모델에서 제공하는 Q를 임포트해야 합니다. from django.db.models import Q 각 키워드 아규먼트를 차례로 Q 객체에 넘겨줄 수 있습니다. 이때 Q 객체의 각 아규먼트는 | (OR)로 구분되지 않는 경우, & (AND)로 이어지게 됩니다. Poll.objects.get( Q(question__startswith='Who'), Q(pub_date=date(2005, 5, ..

Django

장고에서 HTTP GET, POST 요청 처리하는 방법

장고에서는 뷰 파일과 url을 설정하여 클라이언트로부터 들어오는 HTTP GET 및 POST 요청을 처리할 수 있습니다. HTTP 요청에는 크게 GET과 POST가 존재하며, 둘의 가장 큰 차이점은 바디(body)의 존재 유무입니다. GET 요청에는 헤더만 있고 바디가 없으며, POST 요청에는 헤더와 바디가 모두 존재합니다. HTTP GET 요청 처리 HTTP GET 요청은 URL에 쿼리 파라미터를 추가하여 전송합니다. 즉, 다음과 같이 URL의 마지막에 ?를 붙인 다음 파라미터와 값을 넣어 요청을 전송합니다. http://127.0.0.1:8000/skin/products?id=1 만약, 두 개 이상의 파라미터를 전송하려고 한다면 다음과 같이 &을 사용합니다. http://127.0.0.1:8000/..

Project

#1 뷰티 커머스 웹사이트: 위솝

프로젝트 소개 뷰티 미용 제품을 판매하는 이솝 웹페이지를 모티브로 한 커머스 웹사이트 제작 프로젝트를 진행했습니다. 첫 프로젝트여서 잘 해낼 수 있을까 싶기도 했지만, 서로 도우며 함께 나아가고자 했던 팀 분위기 속에서 끝까지 함께 스프린트를 마칠 수 있었습니다. 서비스에 필요한 데이터베이스를 구축하고 프론트엔드와 통신할 수 있었던 소중한 경험이었습니다. '위솝' 팀 구성은 프론트엔드 4명, 백엔드 2명이었습니다. 백엔드였던 저는 카테고리와 제품 파트를 담당했으며, 구체적으로는 다음의 작업을 진행했습니다. ERD 작성 및 장고 모델링 MySQL 데이터베이스 연동 카테고리와 제품 정보 필터링 HTTP 요청 처리 AWS를 활용한 프로젝트 배포 프로젝트는 스크럼 방식으로 진행했으며, 2주 동안 총 2번의 스프..

Web | Internet

HTTP 상태 코드 의미 정리

개요 1xx(정보): 요청을 받았으며 프로세스를 계속 진행 2xx(성공): 요청을 성공적으로 받았으며 처리함 3xx(리다이렉션): 요청 완료를 위해 추가 작업 필요 4xx(클라이언트 오류): 요청 문법이 잘못되었거나 실패 5xx(서버 오류): 요청은 유효하지만 서버에서 실패 대표적인 상태 코드 200: OK 요청 성공. 요청에 따른 응답 반환됨. 201: Created. 요청 성공으로 새로운 리소스 생성. 일반적으로 POST 또는 PUT 요청 이후 400: Bad Request. 잘못된 문법으로 서버가 요청을 실행할 수 없음 401: Unauthorized. 비인증. 404: Not Found. 서버에서 요청한 리소스를 찾을 수 없음. 500: Internal Server Error. 웹사이트 서버에 문..

Django

장고 ORM과 쿼리셋의 개념

장고는 ORM을 통해 데이터베이스와 '간편히' 상호작용할 수 있는 방법을 제공해줍니다. 여기서 '간편히'라는 의미가 생각보다 중요한데요. 이는 장고의 ORM 방식이 아닌 다른 방식으로 데이터베이스와 상호작용하는 기존의 방법을 대체한다는 의미를 내포하고 있습니다. ORM과 SQL 먼저, ORM에 대해 살펴보도록 하겠습니다. ORM은 무엇일까요? ORM(Objcet Relational Mapper)은 객체 관계형 매핑을 의미하며, 객체를 관계형 데이터베이스와 연결해주는 개념입니다. 이렇게 되면 구조화된 쿼리 언어인 SQL(Structed Query Language)을 사용하지 않고도 파이썬만으로 데이터베이스 쿼리 요청을 처리할 수 있게 됩니다. 간단히 정리하자면, 장고의 ORM 방식은 SQL을 사용하지 않고..

Python

파이썬 리스트 컴프리헨션 사용 방법 정리

파이썬에서 리스트 컴프리헨션을 사용하면 간단하게 리스트를 생성할 수 있습니다. 리스트 컴프리헨션은 사용하면 보다 빠르고 간결한 코드로 리스트를 생성할 수 있습니다. 리스트 컴프리헨션으로 새로운 리스트를 만들거나 기존의 리스트를 활용(필터링, 연산 등)할 수 있습니다. 그러나 리스트 컴프리헨션이 지나치게 길어질 경우 가독성이 떨어집니다. 리스트 컴프리헨션 사용 방법 리스트 컴프리헨션의 기본 문법은 다음과 같습니다. [expression for item in list] 짝수들을 담은 리스트를 리스트 컴프리헨션으로 만드는 방법은 다음과 같습니다. even_numbers = [i * 2 for i in range(1, 10)] print(even_numbers) # [2, 4, 6, 8, 10, 12, 14, ..

Django

장고, 파이썬 csv 파일 처리 방법

장고 모델링을 통해 데이터베이스를 생성했다면, 파이썬에서 제공하는 csv 모듈을 사용하여 데이터를 저장할 수 있습니다. 이를 위해서는 먼저, csv 파일을 모델링 양식을 따라 생성하고 스크립트를 통해 데이터베이스에 추가하는 과정을 거쳐야 합니다. 1. csv 파일 생성 방법 csv 파일은 콤마로 구분되는 값(Comma Seperated Value, CSV)으로 구성되며, 다양한 방식으로 생성할 수 있습니다. 사용하는 에디터에서 csv 확장자를 갖는 파일을 직접 생성할 수도 있고, 노션이나 구글 스프레드시트를 통해 데이터를 추가하고 다운받을 수도 있습니다. 중요한 것은 장고 모델링을 통해 만든 모델의 양식을 준수해야 한다는 것입니다. 이번 포스팅에 사용하기 위해 제가 작성한 SubCategory 모델은 다..

TIL

장고 마이그레이션 초기화 방법 - TIL 10

장고에서는 모델링 작업을 완료한 후 마이그레이션을 통해 이를 데이터베이스에 반영합니다. 그러나 불필요한 마이그레이션 히스토리를 지워야 할 때도 있습니다. 직접 마이그레이션 파일을 삭제할 수도 있겠지만, 히스토리가 얽혀 오류가 발생할 수도 있습니다. 다음 방법을 사용하면 마이그레이션이 히스토리를 초기화하여 처음 상태로 되돌아갈 수 있습니다. 장고 마이그레이션 초기화 방법 다음의 명령어를 입력하면 __init__.py를 제외한 마이그레이션 디렉토리 내 모든 파일이 제거되고 마이그레이션 상태가 최초 상태로 돌아가게 됩니다. find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc" -dele..

Python

파이썬 문자열 포매팅 방법

파이썬 문자열 포매팅을 사용하면 문자열 안에 특정 값을 삽입할 수 있습니다. 정수 삽입하기: %d %d를 사용하면 문자열 안에 정수를 넣을 수 있습니다. "%d개의 사과를 먹었습니다." % 3 # 3개의 사과를 먹었습니다. %를 표시하려는 경우에는 다음과 같이 마지막에 %%를 붙여주어야 합니다. "사과의 %d%%를 먹었습니다." % 3 # 사과의 3%를 먹었습니다. 문자 삽입하기: %s %s를 사용하면 문자열 안에 문자열을 넣을 수 있습니다. "%s개의 사과를 먹었습니다." % "세" # 세개의 사과를 먹었습니다. 다음과 같이 숫자와 문자를 조합하여 넣을 수도 있습니다. "%d개의 사과를 먹었습니다. %s개죠." % (3, "세") # 3개의 사과를 먹었습니다. 세개죠. 변수 값 삽입하기: f 파이썬 3..

Django

장고 프론트엔드와 통신 방법: HTTP POST, GET request 처리하기

장고 모델(model) 작업과 url, 뷰(view) 작업을 마쳤다면 HTTP 요청(request)을 통해 프론트엔드와 통신을 테스트할 수 있습니다. 통신의 흐름 장고에서 백엔드와 프론트엔드의 기본적인 통신 흐름은 다음과 같습니다. 백엔드는 장고 서버를 실행하고 프론트엔드에게 엔드포인트와 서버의 ip 주소를 전달합니다. 프론트엔드는 해당 엔드포인트로 원하는 값을 body에 담아 POST 요청을 전달합니다(보통 생성 및 업데이트). GET방식으로도 요청을 진행할 수 있습니다. 이 때는 body가 따로 필요하지 않습니다(보통 데이터를 받아오는 경우). request 형식이 올바르다면 이에 해당하는 response가 상태 코드와 함께 반환됩니다. 통신 설정 방법 외부 서버를 통한 통신이 아니기 때문에 동일한 ..

휘 Hwi
'분류 전체보기' 카테고리의 글 목록 (3 Page)