파이썬 python 23

[django] database is locked - 원인파악 | 해결방안

1. 원인 파악Django에서 "database is locked" 오류는 SQLite3 데이터베이스에 현재 다른 프로세스가 잠금을 걸고 있는 상태에서 데이터베이스 작업을 시도할 때 발생합니다. 이 문제는 여러 가지 이유로 발생할 수 있습니다:동시 접근: SQLite3 데이터베이스는 낮은 트래픽에서 중간 트래픽까지를 처리하도록 설계되었습니다. 높은 수준의 동시 쓰기는 데이터베이스가 잠기는 결과를 초래할 수 있습니다.장시간 실행되는 트랜잭션: 트랜잭션이 완료되는 데 오랜 시간이 걸리면, 데이터베이스에 잠금을 걸어 다른 트랜잭션이 진행되지 않게 할 수 있습니다.파일 잠금 문제: SQLite는 동시성을 관리하기 위해 파일 잠금을 사용합니다. 파일 시스템 잠금 메커니즘에 문제가 있으면 데이터베이스가 잠길 수 있..

[파이썬] 천 단위로 쉼표 표기하는 초간단 방법 : format, f-string 이용

파이썬으로 금액 데이터를 사용하다 보면 천 단위로 구분하기 위해 쉼표를 찍어야 할 때가 있다. 예를 들어 770000원 보다 770,000원 이 더 보기 편하고 사용자 편의성이 좋다. 이번 글에서는 이렇게 천 단위로 쉼표를 표시해주는 간단한 파이썬 코드를 공유한다. 1. format 이용# 금액을 천 단위로 쉼표를 찍어서 표시하는 함수def format_amount(amount): return "{:,}".format(amount)# 예시 금액amount = 770000formatted_amount = format_amount(amount)print(formatted_amount) # 출력: 770,000 2. f-string이용# 금액을 천 단위로 쉼표를 찍어서 표시하는 함수def format_..

파이썬 python 2024.10.08

[django] model object update 방법 정리

django에서는 모델 객체를 업데이트 하는 방법이 여러가지가 있다.쓸때마다 이거였지 생각은 나는데 정확하지 않아 계속 찾아보고 하는 과정이 반복되어이번 기회에 정리하고자 한다.django developer들에게 조금이나마 도움이 되길 바란다.  목차  Queryset.update()"django model update"를 검색했을 때 가장 많이 나오는 방법이다. 즉시 적용(applied instantly)obj.save() 필요 없음update()매서드를 호출하는 순간 데이터가 변경된다.save()보다 더 빠르다(Queryset의 특징인 laziness가 적용되지 않는다.) 외부 테이블의 필드는 수정 불가해당 테이블의 데이터필드만 수정 가능하고 외래키로 수정은 불가하다.>>> Entry.objects...

[django] django로 포트포워딩(port forwarding)하는 방법 (w. middleware)

django로 포트포워딩(port forwarding)하는 방법- Django 애플리케이션에서 클라이언트가 어떤 도메인을 통해 접근했는지를 확인하고, 해당 도메인에 따라 다른 페이지로 리다이렉션하는 방법  배포 관점에서 그려본 프로젝트의 전체적인 흐름이다. 처음에는 django admin페이지를 이용한 서비스를 구현했다.따라서 back과 front모두 django안에서 해결 할 수 있었다. 도메인을 하나 구입해서 Route53을 이용해서 호스팅을 했고,subdomain으로 first를 붙여 (예) first.webname.net으로 배포했었다. 탄력적 IP를 이용해서 내가 배포한 EC2에 고정적으로 접근할 수 있도록 설정해두었고,django 웹앱을 포트번호 8000번을 이용했다. 여기까지는 문제 없다. ..

[django] annotate에 관하여...

django annotate 매서드는 queryset에 내가 원하는 값으로 계산해서 기존 queryset에 추가해줄 수 있다. 그럼 원하는 값으로 계산한다는 건 어떤 말이냐?공식문서에서는 query expression이라고 표현하는데F매서드를 사용해도 되고, Aggregate Func을 사용해서 값을 나타내도 된다. annotate가 "주석을 단다"라는 뜻인데 django annotate는 "queryset에 주석을 달아주는데 주석의 값도 사용 가능"이라고 이해하면 될 듯 하다. (적어도 나에겐...) 아래는 공식문서에 나온 예시이다.from django.db.models import Countq = Blog.objects.annotate(Count("entry"))# The name of the fir..

[python] warning 제거

파이썬 warning 메세지 안보이게 하는 방법사용하는 라이브러리에서 버전에 따라서 warning메세지가 뜨는 경우가 많다.하나하나 확인해서 대응하면 좋겠지만, 그런 여유로움이 없는 분도 있다.(나같은...)터미널에 원하는 메세지만 보길 원하는데 warning메세지때문에 한눈에 안들어온다.아래 코드로 warning메세지를 제거할 수 있다.import warningswarnings.filterwarnings('ignore')

파이썬 python 2024.06.25

[django] django template에서 settings.py variable불러오는 방법

How to use settings.py variables in django template ? >>> Use custom_tag!개발을 하다 보면 로컬환경, 개발환경, 배포환경 등 여러가지 환경에서 테스트해야하는 상황이 생긴다.테스트 할때마다 각 환경에 맞는 환경설정 값을 바꾸는 건 굉장히 비효율적인 작업이고 작업 집중력도 떨어뜨리며 능률도 떨어지게 된다. 그래서 나 같은 경우는 secrets.json에 환경변수값들을 키값과 함께 저장해놓고 각 환경에서 secrets.json파일만 바꾸는 식으로 개발을 진행한다. 뭐가 되었든 각설하고 django template에서 환경에 따라 값을 다르게 넘겨줘야 하는 상황이 생기는데 이 때 settings.py에서 정의한 변수를 가져오게 된다면 문제가 간단하게 해결..

cv2 Trackbar를 이용해서 샤프닝 필터 구현하기(unsharpening) - 컬러버전

샤프닝에 대한 자세한 설명 참고 https://aytekin.tistory.com/121 cv2 Trackbar를 이용해서 샤프닝 필터 구현하기(unsharpening) 아래 스크린샷과 코드 일부분은 황선규 박사님의 fastcampus opencv강의를 참조하여 unsharpening 필터링을 구현한 것입니다. 1. 샤프닝 필터란? 간단하게 이야기해서 이미지를 말 그대로 날카롭게 만들 aytekin.tistory.com 결과 코드전문 import sys import numpy as np import cv2 # 슬라이드 바를 이용해서 alpha값을 조정하도록 하고 그 결과로 sharpening 정도를 조절하도록 구현해보기. # color 이미지 src = cv2.imread('rose.bmp') if sr..

cv2 Trackbar를 이용해서 샤프닝 필터 구현하기(unsharpening)

아래 스크린샷과 코드 일부분은 황선규 박사님의 fastcampus opencv강의를 참조하여 unsharpening 필터링을 구현한 것입니다. 1. 샤프닝 필터란? 간단하게 이야기해서 이미지를 말 그대로 날카롭게 만들어주는 필터이다. 다시 말해 색이 변하는 부분을 더 두드러지게 하여 부드러운 이미지를 더 선명하게 보이게끔 만들어주는 작업이다. 2. 언샤프 마스크(Unsharp mask)필터링 원리 아래 4개의 그래프를 보면서 이해해보면 될 것 같다. 원래 이미지 값에 blur처리를 해준다. 변곡점(각도가 변하는 부분)이 이미지에서 경계값을 나타낸다고 이해한다면 2번째 그래프와 같이 부드러운 그래프가 그려진다. 원래 이미지 값에서 blur처리한 이미지 값을 뺀다. 3번 그래프 식을 정리 이런 계산과정을 거..