기술, 정보 노트
close
프로필 배경
프로필 로고

기술, 정보 노트

  • 분류 전체보기 (177)
    • 애드센스 (6)
    • 재테크 (0)
    • 토렌트 (4)
    • IT리뷰 (1)
    • Tech (164)
      • 블로그 (2)
      • 프론트엔드 (21)
      • 파이썬 (7)
      • Django (69)
      • Network (17)
      • SoC (21)
    • 정보 (2)
      • 건강 (0)
  • 홈
  • 태그
  • 관리자
Django Ninja REST Framework 엔진을 사용하면서 인증처리 - JWT

Django Ninja REST Framework 엔진을 사용하면서 인증처리 - JWT

한글로 된 예제를 찾기 어려웠는데, 가뭄에 단비 같은 한 개의 글이 발견! 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..

  • format_list_bulleted Tech/Django
  • · 2022. 3. 28.
  • textsms
Django  - template에서 숫자를 1000단위 comma 표시하기

Django - template에서 숫자를 1000단위 comma 표시하기

장고에서는 아주 편리한 기능들이 거의 내장이 되어 있다. 숫자 표기시에 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..

  • format_list_bulleted Tech/Django
  • · 2022. 3. 24.
  • textsms
Django ORM - 2개 이상의 필드로 unique 설정하기

Django ORM - 2개 이상의 필드로 unique 설정하기

장고 모델을 만들다 보면, 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..

  • format_list_bulleted Tech/Django
  • · 2022. 3. 19.
  • textsms
장고 ORM - 최근 90일 데이터 읽어오기, NULL, Empty 체크

장고 ORM - 최근 90일 데이터 읽어오기, NULL, Empty 체크

최근 며칠 데이터 가져오기 요거 많이 쓸 듯 아래 사이트에서 가져옴 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..

  • format_list_bulleted Tech/Django
  • · 2022. 3. 11.
  • textsms
[북마크] Django 앱 AWS 배포하기

[북마크] Django 앱 AWS 배포하기

솔루션을 만들어도 배포해서 세상에 공개하는 것이 기술인 세상이다. 이것저것 관련 글 소스가 많지만 일단 아래 글을 참고해보자. 간단한 Django 어플리케이션 AWS에 배포하기 간단한 Django 어플리케이션 AWS에 배포하기 전통적인 방법으로 Django 어플리케이션 EC2 인스턴스에 배포하기 nearkim.coffee Gunicorn, Nginx 설치도 같이 포함되어 설명되어 있다. conf 파일 설정 방법도 물론 소개되어 있고 AWS 말고 추가로 MS Azure, Google Cloud 에도 배포하는 내용이 찾아지면 이페이지에 업데이트 하고, 제목을 바꿔야 겠다. Deehooks 님의 사진, 출처: Pexels

  • format_list_bulleted Tech/Django
  • · 2022. 3. 10.
  • textsms
Django code snippet 저장소 - 유용한 파이썬 코드들 모음

Django code snippet 저장소 - 유용한 파이썬 코드들 모음

말그대로 장고 쓰다가 찾아보게 되는 코드 조각들을 여기에 저장해 둬 보자. 위키처럼 쭉 저장해둔다. 테마가 될때까지 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..

  • format_list_bulleted Tech/Django
  • · 2022. 1. 27.
  • textsms
Django update view 함수 오버라이딩 해보기

Django update view 함수 오버라이딩 해보기

장고 업데이트를 위해 UpdateView 를 쓰는데, 저장할때 먼가를 바꾸기 위해서 사용자 기능을 넣기 위해서는 함수를 오버라이딩을 해야 한다. 몇개 샘플로 남겨두자. view 코드는 아래와 같다. 폼객체에 먼가를 수정을 가하고 싶다면 form_valid 오버라이딩 함수에서 instance 에 작업 하면 되겠다. class FirmwareUpdateView(...UpdateView): def form_valid(self, form): print("form_valid override") instance = form.save(commit=False) print(self.request.FILES.items()) for filename, file in self.request.FILES.items(): print..

  • format_list_bulleted Tech/Django
  • · 2021. 12. 8.
  • textsms
Django 템플릿 문자열에 사용되는 함수들

Django 템플릿 문자열에 사용되는 함수들

장고 템플릿에서 html로 변환되서 사용되기 때문에 문자열 함수가 몇개 있다. 다 정리하긴 어렵고 아래 페이지를 참고하세요. https://himanmengit.github.io/django/2018/02/23/Built-In-Template-Filter.html Django 내장 템플릿 필터 · 초보 웹 프로그래머 himanmengit.github.io 일단 아래 3개를 사용 많이 한다. linebreaksbr 모든 개행 문자를 로 바꿈 # joel\nis a slug. -> joel is a slug {{ value|linebreaksbr }} escape 문자열의 HTML을 이스케이프 한다.

  • format_list_bulleted Tech/Django
  • · 2021. 12. 7.
  • textsms
Django 패키지 설치시 UnicodeDecodeError 'cp949' 에러 해결하기

Django 패키지 설치시 UnicodeDecodeError 'cp949' 에러 해결하기

그냥 pip install 해서 패키시 설치하는데 이런 UnicodeDecodeError 'cp949' 에러가 나면 곤란해진다. 내가 작성한 코드도 아니고 매번 디버깅하기도 애매하다. 이때는.... 반드시 여기를 방문해서 일독 해보시기 바란다. 엄청 자세히 잘 되어 있다. https://daewonyoon.tistory.com/296 pip install 중에 , setup.py 에서 UnicodeDecodeError 'cp949' codec can't decode .... illegal multibyte sequence 가 발생하 pip install 중에 , setup.py 에서 UnicodeDecodeError 'cp949' codec can't decode .... illegal multibyte..

  • format_list_bulleted Tech/Django
  • · 2021. 12. 2.
  • textsms
Django formset 의 개별 form 바로 접근하기

Django formset 의 개별 form 바로 접근하기

장고 Formset 을 보는 예제를 보면, 다들 for iteration 하면서 개별 form에 접근하는 코드들만 있다. 난 그냥 0번째 넘을 바로 접근하고 싶은데 잘 안되서 막 찾아봄 가장 기본 예제는 아래와 같다. https://docs.djangoproject.com/en/3.2/topics/forms/formsets/ {{ formset.management_form }} {% for form in formset %} {{ form.title }} {{ form.pub_date }} {% if formset.can_delete %} {{ form.DELETE }} {% endif %} {% endfor %} 여기서 form 중에 0번째 놈을 접근하려고 formset[0] 시도 했는데 실패 forms..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 28.
  • textsms
Django From 에서 Select 빈 필드 제거 방법

Django From 에서 Select 빈 필드 제거 방법

장고 폼으로 작업하다 보면 Select 필드로 변환되는 필드는 기본으로 Empty 필드가 있다. "----------" 이런 문자열이 제일 위에 등장한다. 머 나름 선택하지 않았다는 표시이니깐 괜찮지만 없애고 싶다면 아래 글을 참고하세요. 빈 필드가 나타나는 형태는 아래 그림과 같다. -------- 이런 문자열이 제일 위에 있어 거슬리거나 무조건 하나의 값을 선택된 형태로 되면 좋겠다면 제거해야 한다. 다행이도 이를 제거하는 옵션이 있다. ForeignKey 등 릴레이션 모델이 들어가는 ModelChoiceField 의 경우 self.fields['sub'].empty_label = None empty_label 이라는 것을 None 으로 해 주면 된다. 그리고, 일단 기본 default 값을 주게 되..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 25.
  • textsms
Django admin 에서 model 객체 출력을 좀 더 자세히

Django admin 에서 model 객체 출력을 좀 더 자세히

Django admin에 어렵게 model을 등록해 두었는데, 관리자가 들어가서 자료를 볼때 object(id) 이런식으로 나오니깐 클릭해서 들어가기 전에 이 객체의 정보의 힌트를 볼 수 없어 답답했다. 이를 해결해 보자 아래 그림을 보자. Company Object(id) 이렇게 나오니, 실제 어떤 값이 들어 있는지는 클릭해서 들어가서 자세한 필드 내용을 봐야 안다. 여기 리스트에서 그냥 대충이라도 보고 싶은 욕구가~~~ 아주 쉽게 해결이 되었다. models.py에 선언하면서 __str__(self) 함수를 등록해 두면 되는 것이다. class Company(TimeStampedModel): name = models.CharField(max_length=255) is_deleted = models.I..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 18.
  • textsms
Django 시간대 설정 - 타임존

Django 시간대 설정 - 타임존

장고에서 시간대 설정하는 부분을 알아보자. timezone 문제가 있어 헷갈리는데 아래 링크 내용을 그대로 적용해 봤다. https://pythonblog.co.kr/blog/66/ 61 Django 시간대설정 -Time Zone 장고 관리자 화면에서 글을 등록 중 NOw버튼을 누르니 한국시간과 9시간 정도 차이가 있네요. (UTC) 시간 설정은 셋팅 파일에서 할 수 있습니다. pythonblog.co.kr LANGUAGE_CODE = 'ko-kr' #국가 설정 TIME_ZONE = 'Asia/Seoul' #시간대 설정 USE_I18N = True #국제화(Internationalization) USE_L10N = True #지역화(localization) USE_TZ = False #장고 시간대 그런데..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 17.
  • textsms
Django @login_required 실패 경우 이동 페이지

Django @login_required 실패 경우 이동 페이지

@login_required 데코레이터를 설정해 둔 경우, 실패한 경우 어떤 페이지가 뜨기는 하는데 내가 따로 설정한 적이 없는 것 같은데, 어디서 설정해 주나? 알아보다 보니 settings.py 에 설정 되어 있어서 코드에서 볼 수 없었다. settings.py 에 보면 "LOGIN_URL" 이라는 값을 설정해 둔 곳이 있다. # settings.py ... LOGIN_URL = '/login/' ... @login_required 데코레이터가 실패시 여기 설정된 페이지로 자동으로 이동 시켜 주도록 장고가 설정 되어 있다는 것. 이게 싫은 경우에는 어떻게 해야 하나? 별도의 데코레이터 함수를 따로 작성하면 되는 것은 당연한데 더 편하게 해 주는 것은 없을까? 추후 업데이트 할련다. 로그인 실패 페이지..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 17.
  • textsms
Django ninja api 호출시 사전 Form 요소 검사 - Schema 활용

Django ninja api 호출시 사전 Form 요소 검사 - Schema 활용

Django에서 ninja api를 정의하여 호출하는 경우, 데이터베이스의 중복이나 불일치 등등 DB와 연동하여 판단하는 것 말고 폼 객체에 필드 값이 일단 사전에 올바른지 간단하게 체크하는 것이 필요하다. 보통 이런경우 api에서 처리해도 되지만 Schma를 정의해서 처리하는 방법이 있다. 자체 공부용으로 정리하는 것이므로 두서 없어도 그냥 넘어가주세요. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) ninja api 구현 함수에 보면 아래와 같이 되어 있다. @api_router.post("register", response={201: None, 409: Mess..

  • format_list_bulleted Tech/Django
  • · 2021. 11. 16.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (177)
    • 애드센스 (6)
    • 재테크 (0)
    • 토렌트 (4)
    • IT리뷰 (1)
    • Tech (164)
      • 블로그 (2)
      • 프론트엔드 (21)
      • 파이썬 (7)
      • Django (69)
      • Network (17)
      • SoC (21)
    • 정보 (2)
      • 건강 (0)
최근 글
인기 글
최근 댓글
태그
  • #Django
  • #장고
  • #Hidden
  • #ORM
  • #ARM
  • #파이썬
  • #백엔드
  • #프론트엔드
  • #SoC
  • #웹개발
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바