본문 바로가기

web/Django

(52)
centos에 python oracle 패키지 에러 libclntsh.so: cannot open shared object file: No such file or directory django.db.utils.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help 파이썬에서 오라클에 접속하기 위해선 cx_oracle 패키지를 사용하는데, cx_oracle에선 오라클의 libclntsh.so라는 파일을 사용한다. 리눅스에서는 오라클의 해당 패키지를 다운로드 한 후 패스를 설정해 주면 된다. 1. 패키지 다운로드 https://www..
Django migrate model 칼럼 추가시 null=True는 가급적 쓰지 말자 1 2 3 4 You are trying to add the field 'created' with 'auto_now_add=True' to greentariffs without a default; the database needs something to populate existing rows. 1) Provide a one-off default now (will be set on all existing rows) 2) Quit, and let me add a default in models.py Colored by Color Scripter cs django 마이그레이션시 칼럼을 추가할때 종종 위와 같이 경고 메시지를 볼수 있다. 구글에서 검색해 보면 한글 블로그 대부분이 칼럼에 null=True를 추..
pytest 시 여러개의 디비 사용하기 참고로 pytest-django 에서 여러개의 디비를 사용하도록 하는 공식적인 버전은 4.3.0 부터 입니다. 해당 버전이 아닐경우 다른 결과가 나올수 있습니다. 1. 테스트 격리! 일단 나의 진행중인 프로젝트에서는 하나의 django에서 4개의 디비를 바라보고 있다. (........) 사실 한 프로젝트에서 여러개의 디비를 사용하는게 이상한 설계인데, SPOF나기 딱 좋은 지점이기 때문이고, 관리도 어렵다. 특히나 테스트시에는 디비를 않쓰는게 가장 베스트이고 (외부 연결점이 없을수록 격리성이 좋다) 테스트시에 디비를 어쩔수 써야 한다면 1번 디비를 테스트 -> 2번 디비를 테스트 -> .. 하는 식으로 단 하나의 디비만을 테스트 하는것을 추천한다. 각 디비를 초기화 및 셋팅하는데 걸리는 시간과 각각의 ..
raw query + group by 그리고 다른 디비에 접속 django 사용 중 3단 콤보로 맞아서 글로 남김 1. raw query + group by 에러 1 2 3 raw_query = "select date, sum('price') from test_table group by date" Model.objects.raw(raw_query) Colored by Color Scripter cs 실행시 만일 에러가 아래와 같다면 Raw query must include the primary key django에서는 Model.objects.raw() 실행은 ORM 요청이기 때문에 raw 쿼리 요청 시에도 primay key를 요구하는데, 문제는 group by 문구가 들어가면 select 1 id, sum('price') from test_table group ..
Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. - django 3.2 version up 기존 django 2.*에서 3.2로 업데이트 시 실행을 하면 다음과 같은 wanning이 나옵니다. Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. HINT: Configure the DEFAULT_AUTO_FIELD setting or the VendorsConfig.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'. django 3.2부터는 모델의 primary key의 속성을 설정해 줘야 합니다. 기본 키의 설정은 DEF..
How Django process a request https://www.b-list.org/weblog/2006/jun/13/how-django-processes-request/ 의 글을 번역한 글입니다. 해당 글은 2006년에 쓰여진 글로 현재 django 버전과 다를 수 있습니다. 들어온다!! 핸들러가 있어 그린라이트! 이제부터 시작. 미들웨어 1 라운드 해결할 시간 미들웨어 2라운드 Into the view 템플릿 django의 템플릿 구조 응답시간(Response time) 미들웨어 처리 3 예외 아직도 응답하지 않았어? 미들웨어 처리 4: 마지막 단계 응답 1. 들어온다!! 2가지 방법으로 장고 서버를 호출한다. 아파치/모드파이선(apache/mod_python) 서버가 셋업되어있을 경우, 모드 파이선이 리퀘스트를 장고에게 전달하고 django..
django RemoteUserAuthentication 는 별거 없습니다. 아니..무슨 전부 배껴 쓰기를 하나, 어떻게 모든 한국의 블로그는 딱 두줄만 써져 있는거지?? RemoteUserAuthenticationUser - 정보가 다른 서비스에서 관리될 때, Remote 인증 (장고 공식문서) - Remote-User 헤더를 통한 인증 수행 https://docs.djangoproject.com/ko/3.0/howto/auth-remote-user/#using-remote-user-on-login-pages-only ``REMOTE_USER``를 사용하여 인증하기 | Django 문서 | Django The Django Software Foundation deeply values the diversity of our developers, users, and community...
django query 4 OneToOne 관계일때는 annoying의 AutoOneToOne을 사용하자. https://uiandwe.tistory.com/1225 View에서의 쿼리 사용 방법 Django의 쿼리는 마지막까지 지연(lazy)된다 Django의 쿼리셋(queryset)은 데이터베이스의 여러 레코드(row)를 나타냅니다. person_queryset = Person.objects.filter(first_name="uiandwe") 이 코드는 DB에 어떤 쿼리도 전달하지 않습니다. 여러분이 person_queryset에 필터를 추가하거나 person_queryset을 함수에 전달한다 해도, 이는 DB에 아무런 메시지도 전달하지 않습니다. 왜냐하면 DB에 쿼리를 전달하는 일은 웹 애플리케이션을 느려지게 하는 주범 중 ..