전체 글
-
ONLY_FULL_GROUP_BY + query 실행 순서Database/MySQL 2020. 2. 6. 23:56
MySQL tutorial를 공부하던 중 발생한 에러에 대해 정리하는 것이 좋을 것 같아 블로그를 쓰게되었다. 아래의 코드는 MySQL 공식 사이트의 alias(별칭)와 관련된 튜토리얼에 나오는 코드이다(공식사이트). SELECT orderNumber as 'Order no.', SUM(priceEach * quantityOrdered) as total FROM orderdetails GROUP BY 'Order no.' HAVING total > 60000; 쿼리를 그냥 실행했더니 아래와 같은 에러가 발생했다. [42000][1055] Expression 1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'class..
-
Javascript에서 django url template tag 사용Django 2020. 2. 4. 15:55
Javascript에서 django의 url template tag를 사용하는 방법 javascript에서도 일반 html에서 사용하는 template tag처럼 코드를 작성해보았다. var url = "{% url 'products:detail' pk=obj.id %}" 아래와 같은 에러 발생 구글링을 해보니 javascript의 replace 메서드를 이용해 pk에 들어갈 값을 간접적으로 할당해주어야 정상적으로 인식이 된다. var url = "{% url 'products:detail' pk='product_id' %}".replace('product_id', obj.id);
-
Google Map API(url)을 이용해 두 위치의 거리 및 시간 측정Server Side/Google Cloud 2020. 2. 2. 03:17
포트폴리오를 만들면서 두 위치의 거리와 시간을 측정하는 기능이 필요했다. Google maps platform에서 distance-matrix api를 이용해 두 위치의 좌표를 보내고 거리와 예상 소요 시간(차량 기준)을 받을 수 있는 간단한 내용을 정리했다. Google Maps Platform - Parameter option units: 거리를 표현할 단위를 지정할 수 있다.(km&meter: metric, mile=imperial) mode=transit: 이동 수단을 지정한다. 자전거, 기차 등 여러가지 모드가 있지만 한국에서는 transit밖에 사용이 안되는 것 같다. origins&destinations: 두 거리를 지정한다. 주소를 사용할 경우 정확한 주소를 입력해야하며 위도 경도를 이용할..
-
MySQL를 DataGrip 연동할 때 발생하는 에러(KST)Database/MySQL 2020. 1. 28. 23:50
mysql 8.0.19 version을 설치해서 DataGrip과 연동하려니 Timezone을 인식할 수 없다는 에러가 발생했다. 두 개의 블로그 중 첫 번째를 참고하여 설정을 바꿔봤지만 적용되지 않았다. 나중에 참고할 수 있으니 링크를 저장해둔다. 두 번째 방법을 참고하여 적용하니 연동이 되었다. 아래는 itchoach 블로그의 내용을 참고하였다. YENA WORLD / itcoach URL을 아래와 같이 설정하면 연동이 가능하다. jdbc:mysql://localhost:3306?serverTimezone=Asia/Seoul
-
Celery & Redis 설치 및 예제Server Side/Celery & Redis 2020. 1. 28. 00:10
EC2(ubuntu)를 기준으로 작성하였습니다. celery(redis)설치 # (venv) pip install "celery[redis]" redis pip install django-celery-beat pip install django-celery-results pip freeze > requirements.txt Supervisor 등록 # /etc/supervisor/conf.d/ vim /etc/supervisor/conf.d/myproject-celery.conf [program:myproject_celery] user=root directory=/var/www/myproject/src/ command=/var/www/myproject/bin/celery -A myproject worker..
-
Day-5(forloop.counter, custom template tags)TIL & Todo List/Coding for Entrepreneures 2020. 1. 17. 21:03
Category Template - {{ forloop.counter|divisibleby: }} forloop.counter: for loop안에서 반복 횟수에 따라 번호를 출력 {% for item in object_list%} {{ forloop.counter }} - {{ item.title }} {% if forloop.counter|divisibleby:2 %} {% endif %} {% endfor %} {% if forloop.counter|divisibleby:2 %}: counter의 숫자가 divisibleby에 할당된 숫자로 나뉘어 떨어질 경우 True 새로운 "list-group"을 추가한다. 동일한 기능을 'cycle' tag를 이용해 구현할 수 있다. # 화면에 나타내고 싶은 ..
-
Day-4(Form Validation, Dynamic value For ForeignKey, PositionField, prefetch_related, Model manager, RedirectView, 주저리..)TIL & Todo List/Coding for Entrepreneures 2020. 1. 15. 23:32
Form Validation 사용자가 form에서 직접 slug를 입력할 경우 validation이 필요하다. db에 저장하기 위함이 아닌 page 단계에서의 유효성 검사 def clean_: 해당 field에 대한 validation이 일어난다. class CourseForm(forms.ModelForm): class Meta: fields = [ 'slug', ... ] def clean_slug(self): slug = self.cleaned_data.get('slug') qs = Course.objects.filter(slug=slug) # if qs.exists(): # -> course를 업데이트할 때 마다 새로운 slug로 변경해야한다. if qs.count() > 1: raise forms..
-
Django REST Framework를 이용해 중첩 댓글 구성하기DRF(Django REST Framework) 2020. 1. 15. 13:34
게시글에 대한 댓글은 ForeignKey를 이용해 간단하게 구현할 수 있다. 하지만 댓글에 대한 댓글, 또 그 댓글에 대한 대댓글 등 중첩으로 댓글을 구현하기 위해서는 model을 생성할 때 자신(댓글)을 부모로 참조하여 구성해야 한다. 데이터베이스는 입력 순서대로 id를 부여하고 데이터를 저장하기 때문에 댓글(부모)에 대한 댓글(자식)을 작성할 경우, 자식 댓글은 부모 댓글의 밑이 아닌 테이블의 가장 아래에 저장하게 된다. Front-end에서 댓글의 queryset을 부모-자식 관계에 맞게 화면에 출력하거나, Back-end에서 관계에 맞게 정리하여 Front-end에 전달할 수 있다. 이 포스트는 Back-end에서 중첩 댓글을 순서 및 관계에 맞게 정리하여 전달하는 방법을 작성하였다. # mode..