전처리, 혹은 사용자가 중복으로 필요한 기능을 모아서 데코레이터로 작성해 두는 경우가 많다. 대부부의 함수에 적용시키거나 특정 함수에서 필요한 기능을 부분부분 적용시키는 데 최적이다. 일단 만들고 나면 대상 함수, 클래스에 적용하는 방법을 알아야 한다. Fuction based view 와 Class based view 에 적용 방법이 각각 다르다. 아래 사이트에 아주 잘 설명이 되어 있다. 원본 사이트로 들어가서 보시면 제 맘에 부담이 덜하겠네요 공부하는 것을 기록해 두는 용도지만 작성자의 노고를 위해서는 사이트로 가서 봐줘요 https://parkhyeonchae.github.io/2020/03/25/django-project-05/#2-decorator-%EC%A0%81%EC%9A%A9 그래도 정리..
pymongo 를 쓰니 편리하게 find 함수로 mongo shell 처럼 검색을 할 수 있다. ObjectID로 검색하려니 ObjectID 로 바꾸는 함수가 별도로 필요로 해 보이는데 (원격 쉘 접속으로 명령을 전달하는 것이 아니니깐) 아래와 같은 귀중한 코드를 구할 수 있었다. 좋은 분들이 많다. 꼭 방문해 주세요 https://ssamko.tistory.com/38 [pymongo] ObjectId로 검색하기 mongodb(pymongo)를 사용하다보면 ObjectId로 검색해야 할 일이 종종 생긴다. mongodb shell에서는 간단하게 아래와 같이 호출할 수 있지만 db.getCollection('collection_name').find({'_id':ObjectId('5f6d775c2.. ss..
한글로 된 예제를 찾기 어려웠는데, 가뭄에 단비 같은 한 개의 글이 발견! Django-ninja로 JWT token 발행 해보기 https://goo-eungs.tistory.com/64 로그인 할때, JWT 토큰을 발행해 주고 (아래 코드를 참고하시면 된다) @router.post('/sign-in/') def signIn(request): payload = { 'id': 2, 'exp': datetime.datetime.now() + datetime.timedelta(minutes=60), 'iat': datetime.datetime.now() } token = jwt.encode(payload, 'secret', algorithm='HS256') return {"token": token} HTTP..
장고에서는 아주 편리한 기능들이 거의 내장이 되어 있다. 숫자 표기시에 1000단위로 컴마를 넣는 것이 사람이 보기에 편하다고 느낀다니 이를 구현하려고 했는데 이미 humanize 라는 기능이 있다. settings.py 파일에 이 기능을 APP 에 추가하고 INSTALLED_APPS = [ ... 'django.contrib.humanize', 필요한 템플릿 페이지에서 로드해서 사용하면 된다. {% load humanize %} 라고 선언하고 실제 필요한 필드에 가서는 ` | intcomma ` 를 추가하면 된다. {{ item.quantity | intcomma }} 끝. 참고페이지는 아래 https://docs.djangoproject.com/en/4.0/ref/contrib/humanize/ dj..
판다스의 Dataframe 에 저장된 필드의 datetime 의 시간대를 한꺼번에 바꿔보려고 여기저기 검색 일단 시간대 변경을 위해 tz_convert('Asia/Seoul') 메소드를 사용해야 할 것으로 이해하고, 출처: https://rfriend.tistory.com/505 [R, Python 분석과 프로그래밍의 친구 (by R Friend)] 판다스 dataframe 에 전체 필드 데이터에 바로 할 수 있는 장점이 있네. 근데 약간 편법같은걸로 햇는데 정답인줄을 모르겟음 계속 dt 형변환해서 메소드 호출하고 이렇게 써야 하나? resultDf['Start Time'] = resultDf['Start Time'].dt.tz_convert(TIME_ZONE).dt.strftime('%H:%M:%S')..
장고 모델을 만들다 보면, unique 필드로 키를 등록해서 사용하곤 한다. 그런데 중복은 되는데 각 사용자별 중복은 허용하지 않도록 지정하기 위해서는 2개 이상의 필드를 묶어서 unique 하게 동작하도록 해야 한다. 이때 사용하는 구문은 다음과 같다. UniqueConstraint https://stackoverflow.com/questions/2881043/django-create-a-unique-database-constraint-for-2-or-more-fields-together Django 2.2 introduced UniqueConstraint and the note in the official documentation on this topic suggests that unique_toge..
HTML id 를 비슷하게 줘서 이벤트 처리를 하나로 하고 싶은 경우가 많다. 동일하게 주기는 찝찝하고, 뒤에 인덱스 같은거 붙여서 같은 기능을 하는 놈들을 비슷한 id로 묶어 뒀는데, 개별적으로 이벤트 처리하려니 영 맘이 안내킨다. 간단하게 JQuery 쓰면서 정규식 비스무리한 거 쓰면 해결!! 원본 글로 방문해서 보는 것을 추천 - https://m.blog.naver.com/cutesboy3/221080367471 for의 index를 부여해서 id값을 부여하여 id가 클릭시 클릭 이벤트처리하는 방법을 아래 스크립트(정규식)으로 처리 할수 있다. $("[id^='useGo_']").click(function() { // 기능 구현하기 }); 간단하게 설명을 하면 //id가 testid로 시작하는 엘..
걍 SQL 쿼리로 업데이트 하고 싶은뎅, ORM에서 제공하는 방법으로 쓰고 싶당. 그냥 변수에 넣고 save() 함수를 부르니 객체 하나씩은 되는데 쿼리셋 전체에 대해서 하는 것은 안되네. 머야 이런것도 안되....................................가 아니라 update() 함수가 따로 있다는 >>> Entry.objects.filter(id=64).update(comments_on=True) 1 >>> Entry.objects.filter(slug='nonexistent-slug').update(comments_on=True) 0 >>> Entry.objects.filter(pub_date__year=2010).update(comments_on=False) 132 한줄로 가쟝 s..
장고 템플릿에서 전달 받은 리스트가 막상 까보니 비어 있을때를 체크해야 한다. 보통 표로 쭉 나열하는게 기본인데, 리스트가 비워져 있다면 테이블 제목만 떡 하니 나오게 되니 플래그를 따로 다시 전달해 주는 것도 방법이지만, 이미 내장 empty 라는 키워드가 있네 그냥 쓰기만 하면 되 소스 - https://docs.djangoproject.com/en/4.0/ref/templates/builtins/ {% for athlete in athlete_list %} {{ athlete.name }} {% empty %} Sorry, no athletes in this list. {% endfor %} 위의 코드처럼 for 문안에서 endfor 닫기 전에 empty 를 사용하면 된다 Pixabay 님의 사진,..
최근 며칠 데이터 가져오기 요거 많이 쓸 듯 아래 사이트에서 가져옴 https://chartio.com/resources/tutorials/how-to-filter-for-empty-or-null-values-in-a-django-queryset/ Now, by using filter(), we can retrieve a QuerySet of just those books that were published within the last 90 days period, like so: >>> from datetime import datetime, timedelta >>> Book.objects.filter(date_published__gte=datetime.now() - timedelta(days=90)).c..
장고의 데이터 처리를 위해서 csv 내보내기를 기본 csv 라이브러리를 쓰니깐 속도가 너~~~~~~~~~~무 느려 어쩔수 없이 Pandas를 사용할 수 밖에 없네 to_csv 를 사용해서 내보내는데, 몇 초 만에 되네 ㅋㅋㅋ 한줄씩 내보내기 하니깐 몇 분 기다려도 안되던데... 암튼 내보내기 하니깐 앞에 원하지 않는 인덱스 값이 컬럼으로 들어와서 불편해서 제거하는 것을 찾아보니 떡 있네. 8-파이썬-데이터프레임의-인덱스-제거하기 정말 간단한데 to_csv 혹은 to_excel 함수를 사용하실 때 아래 코드처럼 'index=False' 만 추가하면 되거든요 👍 # file1을 인덱스 없이 '실습1_수정.xlsx'파일로 내보내기 file1.to_excel('실습1_수정.xlsx',index=False) 실제..
솔루션을 만들어도 배포해서 세상에 공개하는 것이 기술인 세상이다. 이것저것 관련 글 소스가 많지만 일단 아래 글을 참고해보자. 간단한 Django 어플리케이션 AWS에 배포하기 간단한 Django 어플리케이션 AWS에 배포하기 전통적인 방법으로 Django 어플리케이션 EC2 인스턴스에 배포하기 nearkim.coffee Gunicorn, Nginx 설치도 같이 포함되어 설명되어 있다. conf 파일 설정 방법도 물론 소개되어 있고 AWS 말고 추가로 MS Azure, Google Cloud 에도 배포하는 내용이 찾아지면 이페이지에 업데이트 하고, 제목을 바꿔야 겠다. Deehooks 님의 사진, 출처: Pexels
말그대로 장고 쓰다가 찾아보게 되는 코드 조각들을 여기에 저장해 둬 보자. 위키처럼 쭉 저장해둔다. 테마가 될때까지 timedelta 값 template에서 표기하기 가장 쉬운 솔루션으로 가자. https://stackify.dev/332647-displaying-a-timedelta-object-in-a-django-template Displaying a timedelta object in a django template - Stackify I followed Peter's advice and wrote a custom template filter. Here's the steps I took. First I followed this guide to create a custom template filte..
내부 함수가 머가 있는지 막 찾아보는데, 그냥 여기 하나 저장해 두자. 검색어는 django updateview get_success_url form_class access 이런식으로 쳐봤다. 먼가 기본 기능하다가 막 오버라이딩 하고 싶은 욕구가 많은 뷰이긴 하다. 수정이라는 기능이...상태를 바꾸거나, 어떤 작업을 해 주고 싶은데 딱 해당 폼 값만 바꾸기는 아쉽다. 아래 함수들 중에 아무거나 골라서 overriding 해서 사용하기 바란다. 보통 form_valid() form_invalid() 를 많이 쓰긴 한다. from https://dongsik93.github.io/til/2019/12/20/til-django-cbv(4)/ class FormMixin(ContextMixin): """Prov..
JQuery 혹은 자바스크립트 에서 사용되는 코드 조각들을 여기에 일단 유용한 것만 모아두자. 참고 - 셀렉트박스 유지를 위한 스크립트 페이지의 쿼리 파라메터를 읽어와서 기존 값을 유지하는 코드 함수, 그대로 가져왔는데 왠만하면 아래 글쓴이 링크로 가서 읽어보세요. (여긴 그냥 제 참고용으로 남겨둡니다. 설명은 원본글에서 읽으세요 ^^;;;) https://wayhome25.github.io/django/2017/03/01/django-99-my-first-project-5/ // get url query string var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = decodeURIComponent(window.locatio..