
IT/파이썬 2023. 5. 1.
Django - SQL group by 를 ORM 에서 구현하기
group by는 SQL에서 데이터를 그룹화하는 구문입니다. 장고 ORM에서는 values() 메소드를 사용하여 group by의 대상이 되는 컬럼을 지정할 수 있습니다. 이후 annotate() 함수로 집계된 데이터에서 집계 함수를 실행할 수 있습니다. 예를 들어, 다음과 같은 쿼리는 장고 ORM으로 다음과 같이 표현할 수 있습니다. # SQL SELECT name, COUNT(*) FROM test GROUP BY name; # Django ORM queryset = Test.objects.values('name').annotate(count=Count('*')) 위의 예제에서 values('name')은 GROUP BY name과 동일한 역할을 합니다. 이후 annotate(count=Count('..

IT/파이썬 2023. 5. 1.
Django - ORM aggregation 함수 설명과 예
앞서 살펴본 Group by 하는 결과에 많이 사용되는 집계함수에 대해서도 잠깐 살펴보자. annotate() 구문 안에서 자주 사용되는 aggregation funcion 은 아래 처럼 몇가지를 사용할 수 있다. 장고 ORM에서 사용할 수 있는 주요 집계 함수는 다음과 같습니다. Avg: 평균을 계산합니다. Count: 개수를 계산합니다. Max: 최대값을 계산합니다. Min: 최소값을 계산합니다. Sum: 합계를 계산합니다. 예제로 알아보면 가장 쉽다. 앞서 살펴본 동일한 Test 모델과 값이 있다고 가정한다. 2023.05.01 - [IT/파이썬] - Django - SQL group by 를 ORM 에서 구현하기 Django - SQL group by 를 ORM 에서 구현하기 group by는 S..

IT/Software 2023. 5. 1.
빙 코파일럿 - ChatGPT 로 코드 노가다 수고 덜어보기
같은 패턴의 코드를 복제해서 생성해 내고 싶은데, 이거 손으로 하기 귀찮아서 Bing Copilot (빙 코파일럿) 한테 시켜 봤다. 기본 코드는 아래와 같다. if(bt0.val==1) { tsw x0,1 x0.bco=1055 x0.pco=65535 } else { tsw x0,0 x0.bco=65535 x0.pco=0 } 이걸 인덱스만 바꿔서 16개 만들어 달라고 해봤더니, 이놈이 스마트 하게도 for loop 로 만들어 주었다. for (int i = 0; i

IT/파이썬 2023. 4. 28.
Django - Rest-framework API 서버 구현 with Django Ninja
Django Ninja의 주요 장점으로는 다음과 같은 것들이 있습니다 홈페이지에 많은 정보가 있겠죠? 일단은 방문 필수!! https://django-ninja.rest-framework.com/ Django Ninja Django Ninja - Fast Django REST Framework Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints. Key features: Easy: Designed to be easy to use and intuitive. FAST execution: Very high performance thanks to Pydantic and a django-ninja.rest-..

IT/Web 2023. 4. 28.
Billboard.js 무료 네이버 차트 라이브러리 써보기
billboard.js는 D3 기반의 자바스크립트 차트 라이브러리입니다. 아주 간단하게 차트를 만들 수 있습니다. billboard.js의 홈페이지에서는 사용법이 잘 정리되어 있습니다 1. 또한, 다양한 예제들도 참고할 수 있습니다 2. 이전에 작성한 여기도 한번 방문해 보세요. JS – billboard 차트 라이브러리 써보기 JS - billboard 차트 라이브러리 써보기 - B로그0간 #billboard.js #chart #js #라이브러리 #사용법 devbj.com billboard.js를 사용하기 위해서는 D3.js와 billboard.js를 로드해야 합니다. 그리고 차트를 넣을 HTML 요소를 만들고, 차트 옵션을 설정하여 차트를 생성하면 됩니다 1. 예제 코드는 다음과 같습니다: Sampl..

IT/파이썬 2023. 4. 26.
Django - response 객체에 쿼리스트링 추가
response 보낼때 쿼리 스트링 붙여서 보내고 싶다면, 아래 코드를 참고하세요. response = redirect("order_view", pk=order.id) response["Location"] += "?" + request.POST.get("querystring") return response Location 이라는 필드가 있는 지 어케 아는지? 이렇게 작성을 해도 되고, from django.http import HttpResponse def my_view(request): # Get the query string from the request query_string = request.GET.get("querystring") # Create the URL with the query stri..
IT/파이썬 2023. 4. 26.
장고 로그 - Nginx 웹서버, Gunicorn, Django
완전 공부용으로 아래 링크에서 글 저장 http://oniondev.egloos.com/v/10048149 양파개발자 SW의 블로그입니다^^ : nginx-gunicorn-django 구조 파악 및 로그 확인법 아래와 같은 구조로 되어있는 Request Handling Process 를 단계별로 한번 살펴보고 이해해 봅시다!!! 그리고!!! 각 단계별로 로그는 어떻게 보는지 살펴봅시다. 유저 Request → Nginx → Gunicorn → Django Ngin oniondev.egloos.com 유저 Request → Nginx → Gunicorn → Django Nginx Reverse Proxy Server 역할 로드 밸런싱 : traffic 분산 서비스 속도 개선: in-bound, out-bo..

IT/파이썬 2023. 4. 25.
파이썬 코드 웹 실행 사이트
파이썬 코드를 웹에서 실행할 수 있는 몇 가지 사이트가 있습니다. 다음은 그 중 일부입니다 Repl.it (https://repl.it/) 이 사이트에서는 파이썬 코드를 작성하고 실행할 수 있으며 다양한 언어를 지원합니다. PythonAnywhere (https://www.pythonanywhere.com/) 이 사이트에서는 파이썬 코드를 작성하고 실행할 수 있으며 웹 애플리케이션을 호스팅하는 기능도 제공합니다. Google Colab (https://colab.research.google.com/) 이 사이트에서는 Jupyter 노트북 형식으로 파이썬 코드를 작성하고 실행할 수 있습니다. 또한 머신러닝 및 데이터 분석과 관련된 다양한 라이브러리가 사전 설치되어 있습니다. Repl.it에서 코드를 공유 ..

IT/IoT | Hardware 2023. 4. 25.
Nextion HMI 시리얼 업로드, 펌웨어 업데이트 v1.2 파이썬 코드
넥시온 업로드 프로토콜 v1.2는 v1.1 프로토콜의 개선된 버전으로, 수정되지 않은 파일의 일부를 건너뛰어 넥시온/TJC 디스플레이에 TFT 파일을 더 빠르게 업로드 할 수 있습니다. 이는 사진과 글꼴과 같은 리소스가 변경되지 않은 경우 건너뛰게 됨을 의미합니다. 자세한 내용은 아래 글에서 볼 수 있습니다. 공식적인 것인지는 잘 모르겠네요. nxt-doc/Upload Protocol v1.2.md at main · UNUF/nxt-doc · GitHub\ GitHub - UNUF/nxt-doc: Documentation around Nextion Stuff. HMI files, TFT files, ZI files, ... Documentation around Nextion Stuff. HMI files..

IT/IoT | Hardware 2023. 4. 24.
Nextion HMI 시리얼 업로드, 펌웨어 업데이트 v1.1 파이썬 코드 예제
Nextion HMI 디스플레이를 시리얼로 업데이트 하는 파이썬 코드를 간단하게 작성했다. NEXTION HMI UPLOAD PROTOCOL v1.1 을 참고해서 작성하면 되는데, 많은 코드들이 github에도 많이 있다. 아주 간단하게 그냥 기본적으로 기능만 확인했는데, 일단 업데이트는 정상적으로 되는 것 같다. 코드는 테스트 전용입니다. 사용상 에러에 대한 책임은 없습니다. ㅋㅋ 무책임 버전이니 필요하신 분만 참고하세요. import os import serial import time ser = serial.Serial("COM8", 9600, timeout=1) while True: a = f"DRAKJHSUYDGBNCJHGJKSHBDN" print(a) ser.write(a.encode()) se..

IT/리눅스 2023. 4. 21.
우분투 부팅 usb 설치 디스크 만드는 방법 - 기초
우분투 설치 디스크 만들기 작업을 해본다. 간단하게 정리해 보면, 우선 Ubuntu LTS ISO 파일을 다운로드 받고, Rufus라는 프로그램을 사용하여 USB 부팅 디스크를 만든다. Rufus는 rufus.ie에서 다운로드 받으실 수 있습니다. Rufus를 실행한 후 "선택"을 눌러 다운로드 받은 ISO 파일을 선택하고 "시작"을 누르시면 됩니다. USB는 4GB 이상의 저장 공간이 필요합니다. 우분투 다운로드 일단, 우분투 이미지를 다운로드 하자 LTS 버전 아무거나 하면 된다. - Ubuntu 22.04.02 LTS iso 파일을 다운로드 한다. https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Than..

IT/Web 2023. 4. 18.
HTML 체크박스가 여러 개인 경우 체크 여부 확인하는 form 예제
체크박스가 여러 개인 경우 하나라도 체크되어 있는지 확인하고 submit 하는 html 예제는 다음과 같습니다. form 요소에 onsubmit 속성을 사용하여 폼이 제출될 때 실행할 자바스크립트 함수를 지정합니다1. 예를 들어, onsubmit="return validateForm()"과 같이 사용할 수 있습니다1. input 요소에 type 속성을 checkbox로 지정하여 체크박스 요소를 생성합니다2. 체크박스 요소는 name 속성을 사용하여 동일한 그룹으로 묶을 수 있습니다2. 예를 들어, name="hobby[]"와 같이 사용할 수 있습니다2. 자바스크립트 함수에서 document.querySelectorAll() 메소드를 사용하여 체크박스 요소의 NodeList를 가져옵니다3. 예를 들어, v..