All Articles

TIL&TEL 21.09.27~21.10.03

TIL( Today I Learned)

21-09-27 월

  • Todo 전달
  • 인증 테스트 코드 장착

    • application 생성
    • 유저 생성
    • header

      • Authorization clientid:clientsecret
      • contenttype: application/xxxfrom_…
    • body content 작성

      • grant_type
      • username
      • password
  • auth 테스트 코드 완성하기
  • 인증서버 분리를 생각하면, 권한 관리를 어디서 들고 있어야 하는가?

    • 인증서버에서는 유저의 등급, 권한등을 얘기만 해준다. 이에 따른 처리는 Resouce 서버에서 처리해야한다.

      • 고로, Resouce 서버 위치에

        • BasePermission class 상속해서 만들고,
        • 인증에서는 권한 판단 정보만 받아서 request에 담아준다.

21-09-28 화

  • 팀원들 설명하는 시간 갖기

    • django
  • 논의 정리

21-09-29 수

  • 메일 정리
  • 엑셀 문의

21-09-30 목

  • 업무

    • 메일 서비스 코딩 기획

      • 메일작성

        • django template 사용한다.

          • template 문법 확인 필요

            • html template
            • 현재 메일에 그대로 적용이 되어 있다!!
      • 메일 전송

        • 메일 전송 테스트
      • 메일 전송 라이브러리 찾아보기

        • 기본 메일 보내기 확인
        • django mail 확인
        • django template mail
      • 파일 구조 어떻게 잡아야 할까?

        • template/mail_templates
      • CC, BCC 처리 어떻게 해야 하나?

        • cc, bcc 다 받아줌
      • EmailMessage Class

        • subject: The subject line of the email.
        • body: The body text. This should be a plain text message.
        • fromemail: The sender’s address. Both fred@example.com and “Fred” fred@example.com forms are legal. If omitted, the [DEFAULTFROMEMAIL](https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-DEFAULTFROM_EMAIL) setting is used.
        • to: A list or tuple of recipient addresses.
        • bcc: A list or tuple of addresses used in the “Bcc” header when sending the email.
        • connection: An email backend instance. Use this parameter if you want to use the same connection for multiple messages. If omitted, a new connection is created when send() is called.
        • attachments: A list of attachments to put on the message. These can be either MIMEBase instances, or (filename, content, mimetype) triples.
        • headers: A dictionary of extra headers to put on the message. The keys are the header name, values are the header values. It’s up to the caller to ensure header names and values are in the correct format for an email message. The corresponding attribute is extra_headers.
        • cc: A list or tuple of recipient addresses used in the “Cc” header when sending the email.
        • reply_to: A list or tuple of recipient addresses used in the “Reply-To” header when sending the email.
    • Testing 어떻게??

      • Mocking 도전
      • 정상
      • 비정상
      • 이상

21-10-01 금

  • 메일

    • 유즈케이스 분석

TEL (Trial and Error Log)

21-09-27

  • ERROR: django User password not hashed

    • SITUATION: create new user
    • REASON:

      • User.objects.create() is different from User.objects.create_user()
    • SOLUTION:

      • User.objects.create_user()
  • ERROR: djangousermodel.objects.create_user() works, but no data saved on DB

    • SITUATION: pytest fixture 추가중
    • REASON:

      • 저장하지 않고, 끝나고 지워진다.
    • SOLUTION:

      • fixture 단위에서만 유지가 된다.
  • ERROR: unsupportedgranttype {‘error’: ‘unsupportedgranttype’}

    • SITUATION: oauth2_provider test
    • REASON:

      • If a user sends an application/json request they end up getting a 400 saying {“error”: “unsupportedgranttype”}. It appears the view can’t find any data in the request as non of the parameters are found.
    • SOLUTION:

      • request”content_type”: “application/x-www-form-urlencoded”

21-10-01

  • ERROR: tac email sender class 기대 동작 안함

    • SITUATION: django shell_plus ipython 으로 동작 테스트중 코드 수정해서 ipython 경로로 잘 찾아가는 걸로 봤는데 안됨
    • REASON: ipython 상으로는 구현된 코드를 불러오지만, 실행하는 class는 기존에 로드된 class 기 때문에 동작을 안함
    • SOLUTION:

      • shell 다시 시작함
  • ERROR: html 파일 안에 html 어떻게 넣나요?

    • SITUATION: html 파일 안에 html 추가로 집어넣기
    • REASON:

      • 메일 html 동적으로 변경 된다.
    • SOLUTION:

      • base => extend another
      • {{ var_name | safe }}
      • {% autoescape off %}

        • {{ myhtml }}
      • {% endautoescape %}
      • format_html(”{} {} {}“,

        • marksafe(somehtml),
        • some_text,
        • someothertext,
      • )

21-10-03

  • ERROR: pytest-django middle ware 동작을 안함…

    • SITUATION: django db delegate db select to router
    • REASON: Router 처음에 한번 부르면 캐싱해서 계속 사용하고 있다.
    • SOLUTION:

      • dynamic DB_Router 설정은 불가능하다.