All Articles

TIL&TEL 19.09.09 ~ 19.09.15

TIL( Today I Learned)

  • 19.09.09

    • 1차 프로젝트 페이지 인증 권한 수정함
    • 2차 프로젝트 기능 설정 및 스키마 그리기
  • 19.09.10

    • python keygen
    • 2차 프로젝트 테이블 그려봄
  • 19.09.11

    • HTTPie 학습
    • Django as_view 학습
    • Django extension 학습
    • 2차 프로젝트 모델 만들기
  • 19.09.12

    • 결제 API 모듈 찾아봄 - 아임포트가 심플하게 사용가능, 결제업체 가입없이 테스트 가능
    • AWS EC2, RDS 개설 복습
    • Neo Vim custom
  • 19.09.13

    • 카톡 API 찾아봄 - 개인적으로 메시지 보내기 활용해보려고 한참을 찾아봤는데 안되는 기능이었다.
    • 백엔드 프로세스 블로그 읽어봄 (PlanB님 블로그 )
  • 19.09.14

    • Django class 추상화 연습 - 무턱대고 시도해봤는데 약간의 진전만 있을뿐 코드가 효율적이라고 말하기 어렵다. 그리고 다른곳으로 응용이 가능한지도 의문.
  • 19.09.15

    • 1차 프로젝트 API document 정리 - 만들면서 같이 깔끔하게 만들어가는게 서로 좋을듯
    • Django Raw Query 학습 - 그냥 ORM 쓰는것 대비 효용을 아직 잘 모르겠다.

TEL (Trial and Error Log)

  • 19.09.09
    • [ : ]
    • [ : ] 처음부터 끝까지
    • [ point : ] point부터 끝까지
    • [ : point] 처음부터 point 까지
    • - 가 붙으면 상대 좌표가 끝에서 부터 시작 한다.

      • list indexing 에도 사용이 가능하다
    • DB
    • 테이블 이름 소문자
    • DB 접속 암호화 유지
    • 데이터
    • 프론트가 놓칠수 있는 부분 백도 체크해야 한다. 아이디, 이름 공란으로 치면 처리 해야함
    • 서버
    • 서버 컴퓨터에서 변동 사항 있으면 적용하고 재시작 해야 변경사항 적용됨
    • float(‘inf’) = 무한대, 작은값 비교할때 initail value 사용하기 좋다.
  • 19.09.10
    • python
    • print( ‘str’, variable) <== print( ‘str’ + variable) JS 에서는 오른쪽이 작동 했는데 python에서는 안된다.
    • import module vs from module import property

      • 사용할 때에 module.property // property
  • 19.09.11
    • migration 순서가 중요하다. installed app list 에서도 선후 관계가 중요한 역할을 한다. (한번에 여러개의 앱을 동시에 올릴경우)
    • class 추상화 시도들

    • 동일클래스 내에서

      • 변수를 self 로 엮는다.
      • 실패, 메소드에 들어오는 인자를 엮을 수가 없다.
      • 변수를 선언하는 함수를 선언한다.( 인자 없음, self 안붙임 )
      • 실패, 함수가 변수를 선언해도 함수 밖에 있는 메소드가 저장된 변수를 불러오질 못한다.
      • 변수를 선언하는 함수를 선언한다.( 인자 있음, self 붙임 )
      • 실패, 클래스내에 정의된 함수를 동일레벨 함수가 불러오지 못함
    • 클래스 밖에서

      • 함수를 선언한다. (메소드 인자 받음, self 붙임 )
      • 그나마 작동
    • 상속내려주는 클래스에서

      • 정의해도 아래로 내려가질 않는다.
  • 19.09.15
    • django.db.models.query_utils.InvalidQuery: Raw query must include the primary key
    • Model.objects.raw( ) 로 raw Query를 날릴 수 있다. 단 불러온 Query Set 에 ROW의 PK 값이 들어가야지 불러온다. 안그러면 위와 같은 Error 가 난다. 라고 장고공식문서에 써있다.
    • There is only one field that you can’t leave out - the primary key field. Django uses the primary key to identify model instances, so it must always be included in a raw query. An InvalidQuery exception will be raised if you forget to include the primary key.
    • Model.objects.raw( ‘SELECT id, something FROM TABLE_NAME WHERE value = somevalue’)
    • 위의 조건을 통해 나오는 결과는
    • <RawQuerySet: SELECT id, something FROM TABLE_NAME WHERE value = somevalue> 이다.
    • 위에 [0] 을 붙이면 나오는건 Models object (1) 이 나오고, 여기에 .attribute를 하면 다 붙어 나온다.
    • 그럼? django 처럼 instance 다 붙어 나온거 아니냐고 볼 수 있지만.
    • id와 something은 처음 Query 를 통해 붙어 나오고, 다른 attribute들은 추가적인 query를 통해나오게 된다.