본문 바로가기

First step89

Dr Jart 클론 프로젝트 간 새롭게 사용한 것 1. Aggregate 와 Annotate Aggregate 테이블명.objects.filter(필드조건).aggregate(가공함수('필드명')) 테이블의 여러 레코드들에 대한 필드값을 가공하여(ex.sum avg 등) 객체값으로 반환한다. Annotate 테이블명.objects.filter(필드조건).annotate(필드명 = 가공함수(필드값)) 테이블의 여러 레코드들에 대한 컬럼값들을 가공하여 일시적으로 하나의 필드로 추가한다. 반환값은 각 레코드들의 컬럼속성이 추가된 QuerySet이된다. 2. F 와 Q from django.db.models import F, Q F 테이블명.objects.filter(필드조건).update(필드명 = F('필드명') -,/,*,+ ...) Field의 약어로 .. 2021. 12. 7.
Error: That port is already in use. 포트가 이미 사용중이라는 오류를 만나는 경우가 있습니다. 디폴트로 장고는 8000번 포트를 사용하는데 이미 어떤 서비스에서 8000번을 사용하고 있기 때문에 이미 띄워둔 Django서버가 아직 종료되지 않아서, 같은 포트에 띄울 수 없다는 뜻이었다. 서버를 종료할때는 Ctrl + C 로 종료해야하나 실수로 종료하지 않았다거나, Ctrl + Z 등의 비정상적으로 종료되는 경우 발생하는 것같다. lsof -i:8000 를사용하면 8000포트를 누가 쓰고있는지 확인할수있음 kill -9 PID 강제종료 2021. 12. 4.
RESTful API REST하다는 것은 무엇일까? REST(REpresentational State Transfer)란 웹에 존재하는 모든 자원(resorce, ex. 이미지, 동영상, 데이터)에 고유한 URI를 부여하여 자원에 대한 주소를 지정하는 방법론, 또는 규칙입니다. 현재 가장 널리 사용되고 있습니다. url 은 page 기준이 아닌 resource 기준으로 작성합니다. 메인 페이지에 표출되어야할 정보가 무엇인지 판별하여 url을 정합니다. 한 번에 여러 종류의 정보를 표출해야 한다면, 프론트엔드 개발자와 협의하여 REST에 맞춰 두가지 이상의 endpoint를 동시에 호출합니다. 동사를 사용하지 않습니다. 자원을 추가(add)할 때는 ~/post 만으로 충분합니다. 검색 기능은 자원의 정보를 호출하는 기능이므로 .. 2021. 12. 3.
csv파일로 database에 입력하기 python, djnago 를 이용해서 csv로 만든 파일을 데이터 베이스에 입력하는 방법을 연습하기로 했다. 프로젝트를 진행하다 보면 아직 연습하는 단계인 사람들이 모여서 하다보니 최악의 경우 데이터베이스를 DROP하고 다시 만들어서 사용하는 경우도 더러 있다고했다. 그럴때 마다 shell에 들어가서 수작업으로 입력하는 것도 시간 낭비가 될것이고 파일로만들어 백업해뒀다가 uploader를 만들어뒀다가 양식에 맞는 데이터를 큰 어려움 없이 추가입력 할수있다는 점에서 csv파일을 읽어와 데이터 베이스에 넣는 방법을 배우게 되었다. 일단 python shell 에서 쿼리 명령어로 직접 코드를 작성해서 입력해보는 방식으로 작업을 해야 하는데 처음 하는 것이라 익숙치 않은 것도 있지만 바로 눈에 보이는게 아니고.. 2021. 12. 2.