본문 바로가기 메뉴 바로가기

코딩베짱이의 무언가 생산적인 일을 하는 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

코딩베짱이의 무언가 생산적인 일을 하는 블로그

검색하기 폼
  • 분류 전체보기 (65)
    • Programming (31)
      • Fundamentals (0)
      • Language (3)
      • Data (5)
      • Tools (5)
      • settings (5)
      • DB (2)
      • Django (6)
      • WEB etc (3)
      • Algorithms (1)
      • JS (0)
    • Studies (2)
      • 스터디파이 - 통계 (2)
      • 풀잎스쿨 10기 (1)
      • 파이썬 아키텍처 (2)
    • Reviews (12)
      • books (10)
      • Lectures (2)
    • Languages (1)
      • General English (0)
      • 엉터리번역 (1)
    • chat (3)
    • 취미 (6)
      • 해외여행 (6)
    • Unclassified (0)
  • 방명록

Programming/Django (6)
장고에서 로깅하기 (Django Logging)

싸이트를 운영하다보면 종종 예상하지 못한 문제가 생긴다. 로컬에서야 이럴때 그냥 프린트문으로 찍어보면서 해결해도 되지만, 실제 프로덕션에서 그러기는 어렵다. 이 때 도움되는 것이 로그 파일인데 장고에서는 로깅하는 것을 자체에서 제공해주고있어 매우 편리하게 적용이 가능하다! 장고의 로깅은 파이썬에 빌트인으로 들어가 있는 로깅 기능을 사용하고 있어 만약 장고 문서에 설명이 부족한 것 같으면 파이썬의 로깅에 대한 설명을 보면 된다. 어쨌건 파이썬의 로깅은 아래의 네 부분으로 이루어져있다. 나름 번역을 했으나 이게 뭔 말인지 모르겠다면 원문을 보는 편이 낫다.... 원문링크 Loggers - 다섯 개의 로그레벨이 있다. DEBUG - INFO - WARNING - ERROR - CRITICAL 순으로 높아진다...

Programming/Django 2021. 5. 13. 11:49
Django로 메일 보내기

장고는 엔간한건 다 제공해주고 있고, 메일보내는 방법도 제공하고 있긴 하지만, 실질적으로 운영해보면 클라우드 서비스상의 정책 등으로 안되는 경우가 많다. 이런 이유로 인해 메일 보내기 기능을 추가할 때 외부 서비스를 활용하기로 했다. 처음에는 AWS SES를 쓰려고 했는데 웬걸... 해당 서비스는 그냥 바로 쓸수 있는게 아니라 블특정 다수에게 메일을 보내려면 샌드박스에서 탈출해야하는데 이 샌드박스를 나가기 위해선 AWS에 신청한 후 승인을 받아야 한다. 시간이 다소 지체될 것 같아서 그냥 구글꺼를 쓰기로 했다. 구글메일 smtp를 사용할거면 우선 계정의 보안 설정을 건드려야한다. 구글의 계정사진 옆의 점 9개가 있는걸 눌러보면 'Google계정'이 있다. 이걸 누른 다음 '보안'을 클릭하면 해당 페이지에..

Programming/Django 2021. 5. 12. 15:57
Django admin - display, filter, search, action

장고에서는 기본적으로 제공해주는 어드민이 있다. 처음에 봤을땐 그냥 데이터베이스 직접 보는거랑 이게 뭔 차이인가.. 하는 생각을 했었는데, 문서(Django Document link)를 읽어보니 제법 기능이 많았다. 간편하게 커스터마이징하기 쉬운 것은 아래와 같다. list_display 말 그대로 모델어드민의 리스트 상에서 어떤 목록이 보여질지를 정하는 것이다. 해당 모델의 컬럼 중에서 리스트 상에서 보여줄 컬럼을 정할 수 있다 list_display_links 리스트 상에서 해당 객체의 수정 페이지로 이동하는 링크를 어떤 컬럼에 걸지 정한다. 당연히 여기에서 지정하는 필드는 list_display에도 있어야 한다. list_filter 오른쪽 사이드바에 필터를 활성화하고, 어떤 컬럼값으로 필터링할지 ..

Programming/Django 2021. 4. 8. 14:53
Cannot force both insert and updating in model saving 에러

원래 쓰던 테이블에 필드가 하나 더 있는 것이 좋을 것 같아서 필드를 추가하고, 들어온 값의 일부를 사용해서 해당 필드를 채우도록 save를 다음과 같이 오버라이딩했다. def save(self, *args, **kwargs): if not self.extension: self.extension = str(self.file).split(".")[-1] super(File, self).save(*args, *kwargs) 그리고 어드민에서 잘 동작하는 것 같아서 그냥 두고 잊어버리고 있었다. (사실 테스트코드만 있었어도 해결가능하지만......ㅎ) 그러던 와중 앱 테스트 도중에 파일 업로드가 안된다는 얘기를 들었다. 에러 메세지는 다음과 같다. ValueError: Cannot force both inse..

Programming/Django 2021. 3. 12. 17:29
Models - ORM, Fields, Queryset, Migrations

에듀캐스트에서 이진석님의 강좌 '리액트와 함께 장고 시작하기 Complete'를 다 들었는데 막상 정리를 안 해놔서 강좌 내용을 바탕으로 장고 이론을 정리해보기로 했다. ORM이란? Object-Relational-Mapper의 약자로 프로그래밍언어의 OOP 스타일로 쿼리를 작성할 수 있게 해주는 것. 장: 어떤 디비를 사용하든지 이미 잘 알고있는 언어를 사용해 디비를 조작할 수 있으므로 매우 편리하다. 단: ORM을 사용함으로서 오버헤드가 발생하며, SQL을 통해 튜닝하는 것이 ORM을 통해서는 불가능할 경우가 많다. Django Models 장고 ORM은 RDB만 지원한다. (따라서 MongoDB 등의 NoSQL을 쓴다면 장고보다는 다른 파이썬 프레임워크를 쓰는 것이..) 상황에 따라 다르겠지만 되도..

Programming/Django 2021. 2. 12. 18:02
dispatch & decorator를 사용해서 유저 검사하기

웹사이트를 만들때 페이지마다 허용되는 유저가 같으면 곤란한 일이 많이 발생할 것이다. 예를 들어 관리자 페이지인데 일반 유저가 들어간다던가, 아니면 유료로만 이용이 가능한 페이지인데 로그인도 안한 유저가 사용한다던가 하는 경우 말이다. 이런 일을 방지하기 위해서 Django View 상에서 동작하기 전에 무조건 유저를 검사해주도록 하기 위해 장고 뷰의 기본 메서드중 dispatch와 데코레이터를 활용해보기로 했다. 우선 기본 뷰의 메서드 중에는 dispatch라는 녀석이 있다. 이 녀석이 뭐냐면 request와 기타 argument를 입력받고 HTTP Response를 리턴하는 놈인데, HTTP 메서드를 검사하고 해당 메서드와 일치하는 메서드로 연결을 해주는 녀석이다. GET은 get()으로, POST는..

Programming/Django 2020. 11. 18. 13:45
이전 1 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • 인스타그램
  • 깃허브
TAG
  • 유데미강의
  • BookDiscussion
  • askcompany
  • 나는리뷰어다2022
  • 한빛출판사
  • 파고다강남후기
  • 동남아
  • 그래프QL인액션
  • 파고다갓생후기챌린지
  • 혼자공부하는얄팍한코딩지식
  • 싱가포르
  • 파고다후기
  • 개발자리뷰어
  • 아토믹코틀린
  • 한빛미디어
  • 머신러닝파워드애플리케이션
  • 길벗출판사
  • 싱가폴
  • 나는리뷰어다
  • udemy
  • 다시미분적분
  • 싱가폴여행
  • Python
  • django
  • 해외여행
  • 리액트와함께장고시작하기
  • SQL기초구문
  • Singapore
  • SRE를위한시스템설계와구축
  • Docker
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바