Django

· Django
배경 연봉을 기술을 더 발전시키고자 토스에서 사용하는 기술 스텍들을 보고 구현해보자 합니다 (파이썬 사용하는 짱짱 국내 기업이기에) 토스에서 구현하는 기능은 Python, Django MTV, Django REST Framework Redis, Memcached, Celery, Kafka Docker, Kubernetes, Ceph, GoCD (이거하면 토스 들어갈 수 있나요 - 제발) 이렇게 있는데 회사에서도 사용하는 Redis와 Celery를 구현해보고 그 뒤에는 재밌어보이는걸로 순서대로 구현 해봐야겠다 (재미 있어야 계속 하지 않을까) 그냥 구현하면 재미없으니까 어떤것을 바탕으로 구현할까 고민하던 중 예쁜 쓰레기 굿즈를 찾아보다 (여자친구가 좋아해서) 위 페이지를 발견했습니다 조금 손보면 더 이뻐질..
· Django/model
배경 사내 코드 중에 명시하지 않았는데 obj를 참조하고 있는 가진 모델을 다루는 코드가 있었다. 이제껏 prefetch로 가져오고 명시해줘서 뭔가 어색했었다. 그런데 쿼리를 가져올 시 prefetch를 사용하지 않으면 모델_set으로 가져오는 방식이 있었다. 그래서 문득 django가 자동으로 관련 테이블을 가져와주는 것인가? 라는 생각에 정리를 하게 되었다. 코드 #comments가 다른 모델의 copmment_obj에 related_name로 설정 되어있음 comment_obj.comments.create( content=content, user=request.user ) 설명 일반적으로 ForeignKey나 OneToOneField와 같은 관계형 필드를 사용하면, Django는 자동으로 해당 모델..
· Django/view
배경 통계 페이지를 만들고 있는데 개월 별로 통계를 보여주려고 한다. 그런데 생각해보니 개월은 28~31까지 마지막 날이 다양하다. (대충 30일 마이너스 때리면 안된다는 이야기) 만들어야 하는 API 조건이 개월 별로 통계니까 정리하면 request를 통해 param 받기 날짜로 형태 변환하기 날짜 만큼 형태 만들어주기 db에서 들고온 데이터와 비교하기 unique 해야 하기 때문에 중복제거를 해주기 벌써부터 머리 아프다 코드 1. request를 통해 param 받기, 2. 날짜로 형태 변환하기 start_date_str = request.GET.get('start_date', three_months_ago.strftime('%Y-%m-%d')) end_date_str = request.GET...
· Django/model
배경 날짜 형식을 받아서 날짜 형식이 맞으면 저장하고 날짜 형식이 맞지 않으면 저장하지 않으려는 코드를 구현하고자 했습니다. 프론트에서 str로 받기 때문에 datetime으로 바꾼 후에 체크해야 하는데 이 점을 잘 알아야 합니다 코드 try: # 시도: '%Y-%m-%d %H:%M:%S' 형식 datetime_object = datetime.strptime(ended_at, '%Y-%m-%d %H:%M:%S') except ValueError: try: # 시도: '%Y-%m-%dT%H:%M:%S' 형식 (ISO 8601) datetime_object = datetime.strptime(ended_at, '%Y-%m-%dT%H:%M:%S') except ValueError: # 어떤 형식에도 맞지 않..
· Django/view
https://wikidocs.net/91661 3.0 파이썬 엑셀 다루기 - openpyxl 사용법 파이썬을 통해서 엑셀파일을 불러오고 데이터를 입력하는 방법에 대해서 알아볼게요. **openpyxl은 파이썬에서 엑셀을 다루는 것을 쉽게 해주는 도구**입니다. ----- … wikidocs.net 코드 from openpyxl.workbook import Workbook workbook = Workbook() ws = workbook.active ws.title = "타이틀 설정" headers = ['작성분류', '작성일자', '수정일자', '장소명', '상태', '유저', '관리자'] ws.append(headers) ws.append() #데이터 입력 with NamedTemporaryFile()..
· Django/view
코드 #키워드를 먼저 공백 제거 keywords = [q.replace(' ', '') for q in search_keyword.split(' ') if q] for keyword in keywords.copy(): #반복 시 반복 객체를 보호하기 위해 keywords += mecab.morphs(keyword) #형태소를 분해해서 keywords에 담아줍니다 keyword_search_query = reduce( operator.or_, [ Q(content__icontains=keyword) for keyword in keywords ] ) reduce로 누적 만들기 이 예시에서는 content__icontains를 사용하여 keywords 리스트에 있는 각 키워드로 검색하는 Q 객체들을 생성하고,..
· Django/orm
https://pypy.dev/serverless/dynamodb-scan-vs-query/ DynamoDB Scan vs Query TL;DR 개요 Scan vs Query Scan Query 어떨 때 Scan 을 쓰고 어떨 때 Query 를 쓰나요? 검색하고자 하는 값이 한개인 경우 검색하고자 하는 값이 여러개인 경우 (번외) index 로컬 보조 인덱스(LSI) 글로벌 보조 pypy.dev 앞서 query를 사용해서를 구현했었는데 query에 filter을 걸 일이 있어서 기능을 찾아보던 도중 Scan을 통해 구현했었는데 Scan과 query의 차이점이 궁금해서 찾아봤습니다 위의 블로그에서 정리를 잘해둬서 가져왔습니다 3줄 요약 scan은 전체를 읽어오기 때문에 가능하면 query로 query는 p..
· Django/orm
https://yoo11052.tistory.com/174 [AWS] DynamoDB란 DynamoDB DynamoDB는 AWS에서 제공하는 서버리스 기반 Key-Value NoSQL 데이터베이스입니다. DynamoDB를 사용하면 높은 성능과 비용적인 측면에서 이점을 가져올 수 있습니다. DynamoDB 특징 NoSQL 데이터베이스 yoo11052.tistory.com DynamoDB가 무엇인지는 위의 블로그에서 잘 나타내주고 있습니다 3줄 요약: Key-Value 데이터베이스 입니다 서버리스이기에 요청한 만큼만 비용을 지불하면 됩니다. Django에서 DynamoDB를 사용하기 위해 Amazon Web Services (AWS)의 파이썬 SDK인 boto3를 사용해야 합니다 pip install bot..
두잇 두두
'Django' 카테고리의 글 목록 (2 Page)