일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Django
- Algorithm
- Git
- 백준
- web
- 장고
- django ORM
- AWS
- 파이썬 알고리즘
- 알고리즘 풀이
- HTML
- java
- Baekjoon
- 파이썬
- js
- 알고리즘 문제
- react
- form
- CSS
- django widget
- 알고리즘
- javascript
- es6
- MAC
- c++
- django rest framework
- 알고리즘 연습
- API
- DRF
- Today
- Total
목록웹프로그래밍 (163)
수학과의 좌충우돌 프로그래밍
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 자기 참조 외래 키 자기 자신을 참조하는 자기 참조 외래 키를 정의할 수 있습니다. class Employee(models.Model): manager = models.ForeignKey('self', on_delete=models.CASCADE) class Employee(models.Model): manager = models.ForeignKey("Employee", on_delete=models.CASCADE) 2. 기존 DB를 django Model로 옮기기 Django에서 models.py를 통해 DB를 생성할 수 도 있지만 경우에 따라 기존의..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. QuerySet 정렬 Django에서는 order_by 메서드를 사용하여 QuerySet을 정렬할 수 있습니다. 여러 필드에 대해서도 가능하며 - 를 사용하여 내림차순으로 정렬도 가능합니다. Post.objects.all().order_by('created_at', '-updated_at') SELECT `post_post`.`id`, `post_post`.`user_id`, `post_post`.`title`, `post_post`.`content`, `post_post`.`created_at`, `post_post`.`updated_at` FROM ..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 여러 개의 행을 한 번에 생성하기 여러 개의 데이터를 저장하기 위해서 create() 함수를 여러 번 쓰는 것은 비효율적입니다. DB와 연결 후 저장을 하고 연결을 끊게 되는데 쿼리가 여러 개면 이 과정을 무의미하게 반복됩니다. 따라서 저장할 데이터가 많을 경우 한 번에 저장하는게 좋습니다. Django에서는 bulk_create 를 제공해줍니다. 이 함수는 아직 저장되지 않은 객체를 담은 리스트를 인자로 받습니다. categories = [Category(name='a'), Category(name='b')] category = Category.obj..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 14. Q 객체 앞서서 Q 객체에 대해 다루었다시피 이를 통해 SQL 질의의 WHERE 절을 수행할 수 있습니다. queryset = User.objects.filter( Q(first_name__startswith='R') & ~Q(last_name__startswith='Z') ) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."first_name", "auth_user"."last_name" FROM "auth_user" WHERE ("auth_user"."first_name"::text L..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 10. JOIN SQL에서는 JOIN문을 이용해 동일한 값을 가진 열을 기준으로 두 테이블을 결합할 수 있습니다. django에서도 JOIN을 할 수 있는 방법이 존재합니다. select_related 모든 Post를 가져오는 간단한 쿼리를 살펴봅시다. post_all = Post.objects.all() 이에 대한 SQL 질의문입니다. 놀랍게도 Post에 대한 질의문과 Post와 OneToOne으로 연결되어 있는 User에 대한 질의가 함께 이루어집니다. Post가 N개 있다면 각 Post에 해당하는 User를 조회하기 위해 N번의 추가적인 질의가 이루어집..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 장고 ORM이 실행하는 실제 SQL 질의문 확인 ORM에 대응되는 SQL 질의문을 확인하기 위해서는 다음과 같이 확인할 수 있습니다. queryset = Post.objects.all() str(queryset.query) ''' 'SELECT `post_post`.`id`, `post_post`.`user_id`, `post_post`.`title`, `post_post`.`content`, `post_post`.`kind`, `post_post`.`image`, `post_post`.`created_at`, `post_post`.`updated_at..
모델링을 하다보면 한 모델이 여러 개의 모델과 관계를 맺어야하는 순간이 있습니다. 많이 접해봤을 블로그 프로젝트만 해도 게시물과 댓글에 좋아요 기능을 넣기 위해서는 다음과 같은 모델링이 필요합니다. class Post(models.Model): # 생략 class Comment(models.Model): # 생략 class Like(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE) comment = models.ForeignKey(Comment, on_delete=models.CASCADE) 물론 모델링에는 정답이 없으니 Like 를 PostLike와 CommentLike 로 나눌 수도 있고 방법은 다양합니다. 하지만 위에 소..
백앤드 개발을 하다보면 API의 endpoint를 어떻게 설계할지에 대한 고민을 계속 하게 됩니다. 저 역시 그런 생각을 하다가 GET method를 통해 데이터를 넘길 경우에 Path Variable와 Query Parameter 중 뭐가 더 적합한가에 대한 의구심을 품게 되었고 이를 찾아보고 정리하게 되었습니다. 각각에 대해 알아보며 어느 상황에 쓰는게 적합할지 생각해봅시다. Path Variable Path Variable 는 이름에서도 알 수 있듯이 경로를 변수로서 사용합니다. 게시물이 존재하며 각각의 게시물을 볼 수 있는 경우를 생각해봅시다. 각각의 게시물을 보기 위해서는 게시물의 id를 서버에 넘겨줘야 합니다. 이를 Path Variable 를 사용하면 다음과 같이 나타냅니다. /post/6 ..
log 란? 로그란 운영체제나 다른 소프트웨어가 실행 중에 발생하는 이벤트나 각기 다른 사용자의 통신 소프트웨어에 발생하는 모든 상황을 기록하는 데이터입니다. 개발, 마케팅, 기획, 디자인 등 여러 분야에서 로그데이터는 유용하게 사용될 수 있습니다. 특히 개발 영역에서는 해당 데이터를 통해 다음과 같은 활용이 가능합니다. 버그 수집 및 트래킹 롤백 및 대응 등에 대한 의사결정 판단의 근거로 활용 특정 기능에 대한 사용자 진단 Django를 통해 개발을 하면서도 이러한 로그를 남기고 추후에 활용할 수 있습니다. 이번 포스팅에서는 Django에서의 logging에 대해서 알아보도록 합시다. python logging django에서는 python 내장 logging 모듈을 사용합니다. 자세한 내용은 아래서 ..
Django media 파일 업로드 하기 [Django] media 파일 업로드하기 Media 파일이란? media 파일이란 FileField 를 통해 저장한 모든 파일을 지칭합니다. 물론 ImageField 도 FileField 를 상속받은 필드로서 유사 필드들을 통해 저장된 파일도 media 파일입니다. 이는 특별하게 ssungkang.tistory.com 저번 포스팅에서는 media 파일을 업로드하는 방법을 알아봤습니다. 이번에는 media 파일을 S3를 이용해서 업로드하는 과정에 대해서 알아보도록 하겠습니다. 과정은 총 3단계로 아래와 같이 진행됩니다. AWS IAM 세팅 AWS S3 세팅 django에서 이미지 업로드 AWS IAM 세팅 AWS IAM, 사용자 생성 [AWS] Identity a..