IT/파이썬 2024. 2. 2.
Pydantic none 오류 처리 방법 - Optional 사용
Django ninja 로 API Schema를 만드는데 None type으로 정희한 부분에서 에러가 발생했다. Null이 들은 필드의 값을 받아오는 Schema에서 기본값으로 None을 주면 Exception이 발생하지 않은 것 같은데 갑자기 발생하네 response.items.1.manager2_position Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.6/v/string_type 에러 내용은 대충 이러했다. class ProductInSchema(ModelSchema): note..
IT/파이썬 2023. 7. 20.
북마크 - 매력적인 프론트 엔드를 만드는 파이썬 웹 프레임워크 3가지
기본적으로 파이썬으로 모든걸 다 할 수 있다는 읽어볼 만한 글이다. JS로 다 하는세상에서... 앤빌 같은것은 한 번 시도해 봐도 좋을 듯 한데. 매력적인 프론트 엔드를 만드는 파이썬 웹 프레임워크 3가지 https://www.ciokorea.com/news/299707#csidxdd2ba8ab5803138bc386f67c2603081 매력적인 프론트 엔드를 만드는 파이썬 웹 프레임워크 3가지 파이썬은 오래전부터 서버 측 프레임워크용 언어로 쓰였고, 거의 모든 규모, 거의 모든 환경의 프로젝트를 지원한다. 그러나 파이썬은 전통적으로 백 www.ciokorea.com 앤빌(Anvil) Anvil: Web Apps with Nothing but Python Yes, really, nothing but Pyt..
IT/파이썬 2023. 7. 7.
AWS 라이트세일 - 파이썬 코드 백그라운드 돌려놓기
라이트세일 인스턴스 우분투로 깔아서 실행한뒤 파이썬 코드를 실행해 두었는데, ㅋㅋ 연결이 끊어지면 그냥 종료를 해버리네 백그라운드로 그냥 돌려서는 안되네 nohub 명령어를 같이 써줘야 한다는 게 정답 https://dndi117.tistory.com/71 AWS Lightsail에서 가상화폐 자동매매 봇 돌리기 - 초보자도 이해 가능 우선 이 글은 초보자를 위해 쓰여졌다. 내가 초보자고, 이거 하나 알아내는 데도 정말 많은 노력이 들었기 때문에 나랑 비슷한 수준인 사람들이 구글링 좀 덜하고 자동매매 돌릴 수 있었으면 해 dndi117.tistory.com 그런데 이렇게 하더라도, 우분투 서버의 창을 닫으면 코드의 실행이 중단된다. 세션이 끊어지면 실행이 중단되도록 되어있기 때문이다. 그러므로, 코드를 ..
IT/파이썬 2023. 7. 7.
파이썬 - 변수 넘길때 복사인지 포인트만 넘어가는지?
파이썬은 Call by reference? Call by value? Immutable Object인 경우에는 Call by value형식으로 변수를 핸들링하고, Mutable Object인 경우에는 Call by reference형식으로 변수르 핸들링 한다. 그냥 검색하면 나온다 https://velog.io/@yun9yu/ 링크 파이썬은 Call by reference? Call by value? 파이썬은 call by reference일까? call by value일까?아니 그보다 먼저 call by reference와 call by value는 뭐야?두 방식은 함수의 인자 전달 방식이다. 즉, 함수에서 인자를 불러올 때 어떻게 그 값을 호출하는 velog.io 파이썬은 Call by assignm..
IT/파이썬 2023. 6. 30.
FastAPI 에 Nginx 웹서버 필요?
FastAPI, Flask 등등 웹서버를 써야하나 말아야 하나 고민중이라면 한번 읽어보시길~~ FastAPI 개발환경 셋팅으로 배우는 nginx와 웹서버의 관계 nginx와 웹서버의 관계를 이해하기 위해서는 먼저 nginx가 무엇인지 알아야 합니다. nginx는 웹서버 소프트웨어로, 클라이언트의 요청을 받아서 처리하거나 다른 서버에 전달하는 역할을 합니다. nginx는 reverse proxy라고도 불리는데, 이는 nginx가 클라이언트와 실제 서버 사이에 위치하여 요청과 응답을 중계해주는 것을 의미합니다¹. FastAPI는 파이썬으로 작성된 웹 프레임워크로, 비동기적이고 빠르게 API를 개발할 수 있습니다. FastAPI는 ASGI라고 부르는 웹 서버 게이트웨이 인터페이스를 사용하는데, 이는 비동기적으..
IT/파이썬 2023. 5. 24.
Request.is_ajax() 함수
Django 4.0부터 is_ajax() 함수는 제거되었습니다. request.is_ajax() 메서드는 요청이 AJAX 요청인지 여부를 나타내는 부울 값을 반환합니다. 이 메서드는 요청이 AJAX 요청인지 확인하는 데 사용됩니다. request.is_ajax() 메서드는 다음과 같은 방법으로 사용할 수 있습니다. Python if request.is_ajax(): # This is an AJAX request else: # This is not an AJAX request코드를 사용할 때는 주의하시기 바랍니다. 자세히 알아보기 content_copy request.is_ajax() 메서드는 다음과 같은 방법으로 확인할 수 있습니다. X-Requested-With HTTP 헤더가 XMLHttpReques..
IT/파이썬 2023. 5. 18.
Django - USE_TZ 설정에 따른 timezone.now() 리턴
timezone.now() 함수는 USE_TZ 설정이 True이면 현재 시간대의 datetime 개체를 반환하고, USE_TZ 설정이 False이면 UTC의 datetime 개체를 반환합니다. 만약 USE_TZ=True 인 경우에는 그냥 아래 timezone.now() 만 사용하면 될 것 같은데, 혹시나 USE_TZ=False 인 경우에 timezone 에 맞는 now() 값을 가져오고 싶다면, 아래 코드를 참고하셔도 좋을 것 같네요. 이 코드들은 모두 현재 시간의 datetime 개체를 가져오고 클라이언트의 시간대로 변환합니다. client_timezone = timezone.get_current_timezone() django_time = timezone.make_aware(datetime.datet..
IT/파이썬 2023. 5. 9.
파이썬 슬라이스 join 을 이용해서 주소 문자열 만들기
join 메소드는 파이썬의 문자열 메소드 중 하나로, 문자열 리스트를 하나의 문자열로 결합하는 데 사용됩니다. join 메소드는 결합할 문자열 리스트를 인수로 받고, 각 문자열 사이에 호출한 문자열을 삽입하여 하나의 문자열로 반환합니다. 예를 들어 다음과 같은 코드를 실행하면: words = ['apple', 'banana', 'cherry'] result = ', '.join(words) print(result) 다음과 같은 결과가 나올 것입니다: apple, banana, cherry 이 코드는 words 리스트의 각 요소 사이에 ', ' 문자열을 삽입하여 하나의 문자열로 결합합니다. 그럼 이제 주소 배열로 저장된 내용을 주소 문자열로 만들어 보자. " ".join(address_list[2:-1])..
IT/파이썬 2023. 5. 5.
Django manage.py my_command - 커스텀 명령어 만들기
가끔 배치 파일로 처리할 필요가 있다. python manage.py runserver 처럼 간단하게 자기 명령어를 만들어서 수행할 필요가 있다. 아주 잘 정리되어 있는 글이 있다. https://windybay.net/post/28/ Django 커스텀 manage.py 명령어 만들기 장고 프로젝트에서 manage.py 를 이용해 프로젝트 관련 명령을 실행할 때가 있다. 등등 테스트용 서버를 띄우거나 … windybay.net 나도, 빙 코파일럿을 이용해서 초안을 더 작성해 봤다. 엑셀 파일 명을 받아서 DB 에 입력하는 예제를 만들어 달라고 요청하고 정리해봤다. Django에서는 사용자가 커스텀 manage.py 명령어를 만들 수 있습니다. 이를 위해서는 Django 앱 내에 management/co..
IT/파이썬 2023. 5. 5.
파이썬 - 지도, 주소, 위도, 경도 등 지도 라이브러리 - GeoPy
파이썬은 강력하다. 지도 관련된 서비스를 하려면 필수적으로 GeoPy 정도는 있어야 대부분 구현이 가능하다. 먼저 홈페이지 방문해서 예제를 보면서 파악하는 것이 급선무! https://geopy.readthedocs.io/en/stable/#module-geopy.geocoders Welcome to GeoPy’s documentation! — GeoPy 2.3.0 documentation Different services have different Terms of Use, quotas, pricing, geodatabases and so on. For example, Nominatim is free, but provides low request limits. If you need to make more..
IT/파이썬 2023. 5. 4.
Python - UnicodeDecodeError: 'cp949' 에러 해결 방법
UnicodeDecodeError: 'cp949' 에러는 파일을 읽을 때 발생할 수 있는 문제입니다. 이 문제를 해결하는 방법으로는 파일을 열 때 인코딩을 지정해주는 것이 있습니다. open('파일경로', 'rt', encoding='UTF8') 와 같이 파일을 열어주면 왠만하면 다 해결이 됩니다. *) 실제 파일 인코딩에 맞추어서 사용하면 됩니다. 다른 방법으로는 텍스트 파일을 메모장으로 열어서 다른 이름으로 저장하고 인코딩을 ANSI로 저장하는 것도 있습니다. 이 외에도 인코딩 값을 변경해서 시도하거나 파일을 직접 열어 공백이 있는지 확인하고 공백을 제거하는 방법도 있습니다.
IT/파이썬 2023. 5. 4.
Django ORM - aggregation sum 결과가 0 인 결과 배제하기
Django ORM - aggregation sum 결과가 0 인 결과 배제하기 생각해보면 아주 쉽지만 안될지 될지 몰라서 그냥 해봤는데 되네 sum, avg, count 등을 수행한 결과가 0인 경우에 결과 값에서 빼고 싶다면 그냥 exclude 를 이용하면 된다. result_groupby_product_thismonth = ( target_summaryproductcount.values("product_name") .annotate(sum_count=Sum("count")) .values("product_name", "sum_count") .exclude(sum_count=0) ) 상품명으로 Group by 해서 sum을 구했는데, Sum 값이 0면 결과값에서 빼는 코드 참고용입니다. :) http..
IT/파이썬 2023. 5. 3.
Django ORM - Group by 사용해서 Count, Sum, Avg 구하기
Django ORM으로 Group by 필드 구현하는 방법은 아래 글을 이길 수가 없어요. 완전 잘 써놓으셔서 들어가서 읽고 감탄만 하시길!! 정리해 보면, 1. 먼저 Group by 할 필드를 정해서 values에 넣고 .values("필드") 2. 함수를 불러서 쓰고 .annotate(Count(), Sum(), Avg(), ...) 3. 보여줄 필드를 다시 정리하고 .values("필드", "필드", ...) 즉, values 를 2번 불러 쓰면 된다. [Django] ORM으로 Aggregation 함수와 Group by 사용 [Django] ORM으로 Aggregation 함수와 Group by 사용 쿼리에서 aggregation함수(count(), max(), first() 등등) 와 필요한 ..