TIL( Today I Learned)
21-09-06 월
-
django
-
from asgiref.sync import asynctosync
- django는 1 request가 동일 스레드에서 실행된다고 가정한다.
-
thread_sensitive=True (the default)
- 이 코드에 잠재적 인 호환성 문제를 도입하는 대신 기존의 모든 Django 동기화 코드가 동일한 스레드에서 실행되므로 비동기 모드와 완전히 호환되도록이 모드를 추가하는 것을 선택했습니다. 동기화 코드는 항상 이를 호출하는 비동기 코드 와 다른 스레드에 있으므로 원시 데이터베이스 핸들이나 기타 스레드에 민감한 참조를 전달하지 않아야합니다.
- Admin 작업들 확인하기
-
21-09-07 화
-
Django Multi DB schema 그리고 정합성 여부 진행
- make relation
- control code create
-
test cases
- transaction
- 1toM
- m2m
- mto1
21-09-08 수
-
async
-
m async 묶어서 생성이 가능한가?
- 1 to m
- m to 1
- m to m
-
M 작업을 async loop에 던진다!!
- nested loop okay?
-
loop = asyncio.get_event_loop() loop.create_task(http_call_async()) return HttpResponse('Non-blocking HTTP request')```
-
옵션들? 비동기 트라이 트라이
- 태스크로 만들까?
- 코루틴으로 만들어서 한번에 코루틴을 실행할까?
-
asyncio.getrunningloop()
- 현재 OS 스레드에서 실행 중인 이벤트 루프를 반환합니다.
-
asyncio.geteventloop()
- 현재의 이벤트 루프를 가져옵니다.
-
asyncio.run()
- 이 함수는 항상 새 이벤트 루프를 만들고 끝에 이벤트 루프를 닫습니다. asyncio 프로그램의 메인 진입 지점으로 사용해야 하고, 이상적으로는 한 번만 호출해야 합니다.
-
한개의 aw
- await
-
debuging
- => Debug 모드 세팅
-
여러개의 awaitable
-
asyncio.gather() => 결과값 list, 동시에 결과값 받을 수 있다.
- aws 시퀀스에 있는 어웨이터블 객체를 동시에 실행합니다.
- aws에 있는 어웨이터블이 코루틴이면 자동으로 태스크로 예약됩니다.
- 모든 어웨이터블이 성공적으로 완료되면, 결과는 반환된 값들이 합쳐진 리스트입니다. 결괏값의 순서는 aws에 있는 어웨이터블의 순서와 일치합니다.
- return_exceptions가 False(기본값)면, 첫 번째 발생한 예외가 gather()를 기다리는 태스크로 즉시 전파됩니다. aws 시퀀스의 다른 어웨이터블은 취소되지 않고 계속 실행됩니다.
- asyncio.as_completed() iteration, 먼저 처리된 것부터 받을 수 있다.
-
-
21-09-09 목
-
ForeignKey 없는 DB 검증하기
-
primary_key 적용 가능한지?
-
가능하다!
- 단 warning이 뜬다.
- 두개 다 적용은 안된다.
-
-
CRUD with
-
C 가능
-
R 제한적
-
M2M Mapping table 직접 사용이 안된다.
-
mapping table id 가 없다. all() 불가능
- defer 사용해도 강제 적으로 id 가 들어간다.
- filter 불가능
- get 불가능
- all()
- 다리만 놓는다.
-
-
-
U
- 가능
-
D
- 가능
-
-
Chain Relation 가능??
- nested chaning 가능하다.
-
-
테이블 릴레이션 걸기
- 관계 끊겨 있는.. brand key ? ForeignKey 이어야 하나?
-
ForeignKey , blank True???
- use either default=SOMETHING, blank=True, null=False
-
or blank=True, null=True,.
-
CharField.
- It’s suggested that use the blank=True alone, leaving null=False behind.
-
-
db_constrait 끄면 어찌 되는지?
-
on_delete 는 장고에서 동작인가, DB에 지정인가?
- Django 에서 동작
- + 다른 DB 작업이 ForeignKey 건드려도 삭제 못하게 막기 위한 조항들
-
db_constraint를 끄면 db 상에 ForeignKey constraint 적용을 한다.
- 그래도 Django 상에서 동작은 한다.
-
21-09-10 금
- 데이터 릴레이션 정리
- 릴레이션 정책
TEL (Trial and Error Log)
21-09-06
-
ERROR: AttributeError: module ‘MySQLdb.constants.FIELD_TYPE’ has no attribute ‘JSON’
- SITUATION: Poetry Initiating, django
- REASON: venv 세팅 안먹음?
-
SOLUTION:
- pip install mysqlclient==2.0.1
21-09-07
-
ERROR: Load key “~~.pem”: bad permissions
- SITUATION: ssh connect
-
REASON:
- 권한문제이다
-
SOLUTION:
- chmod 400 ~~.pem
-
ERROR: You must either define the environment variable DJANGOSETTINGSMODULE or call settings.configure() before accessing settings
- SITUATION: django 다른 파일 돌리기
- REASON: 환경 세팅을 안했다.
-
SOLUTION:
-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dj_rel_test.settings') import django django.setup()```
-