개발/Django(7)
-
20200430 - Django login auth
오늘 글은 짧고 간단하게 쓴다. login auth를 할 방법이 필요해서, 찾아봐서 내 나름의 방법을 찾았지만 이게 잘 만들어진건지는 확신이 안 든다. view 설정에서 다음과 같이 한다. class BaseView(APIView): authentication_classes = (authentication.TokenAuthentication,) 위와 같은 BaseView를 설정하고, 모든 view class가 이를 상속하도록 하면 된다. 그리고 settings.py에서 다음과 같은 설정을 추가한다. REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES':[ 'knox.auth.TokenAuthentication', ], }
2020.04.30 -
20200429 Django와 rest-framework
오랫동안 블로그에 글을 쓰지 못했다. 인턴을 하던 회사에서 나와 면접 준비도 하고 면접도 보면서 그런 와중에 학교 수업도 들어 정신이 없었다. 이제 그동안 면접 및 면접 준비를 하며 익힐 수 있었던 것들이 많으니 블로그에 글을 많이 쓰게 될 것 같다. 오늘은 장고와 rest-api를 활용하여 백엔드를 구성하는 대략적인 정석(?)을 깨우친 것들을 써보겠다. Django를 배우면 항상 강조되는 개념이 있다. Model - View - Template의 MVT구조가 그것이다. 그리고 이것을 rest api와 serializer를 활용하여 좀 더 효율적이고 다양하게 많은 view를 제공해줄 수 있다. serializer는 정의한 model에서 attribute를 추출하여 json 형태로 편하게 output을 낼..
2020.04.29 -
20200327 postgresql unnest
1.Postgresql unnest 전에 postgres의 executemany에 관해 포스트한 적이 있는데, ( with psycopg2.connect(host=~~~~) as conn: with conn.cursor() as cur: 에서 cur.executemany()...) 알고보니 exectuemany가 query를 한번에 날리는 것이 아닌 connection을 한번만 할 뿐 query는 똑같이 여러번 한다고 한다. 그럼 더 빠른 query 실행문은 뭘까? 바로 unnest를 활용한 실행문이다. 다음을 보자. def pg_cur(auto_commit=False): with pg2.connect(database=settings.POSTGRES_VECTOR_DB, user=settings.POSTG..
2020.03.27 -
20200309 django multi db & auto_commit
오늘 회사에서 multi db를 활용할 일이 있어 간단하게 문서들을 읽어보고 적용시켜봤다가 결국엔 무산되었다. 기록으로라도 남긴다. 1.Multi DB setting.py에서 databases에 관해 다음과 같이 입력한다. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': os.environ['DB_NAME'], 'USER': os.environ['DB_USER'], 'PASSWORD': os.environ['DB_PASS'], 'HOST': os.environ['DB_HOST'], 'PORT': os.environ['DB_PORT'], }, 'nameyouwant': { 'ENGINE': 'db_e..
2020.03.09 -
20200308 django bulk update
django를 활용하며 여러가지 상황을 맞닥뜨리다보니 같은 table의 각 row에 각기 다른 내용을 넣어야 할 때가 있다. 그 때나는 for something in Table.objects.filter(somethingsomething): something.thing = some variable something.save() 위와 같은 형식으로 해야하나?(굉장히 무식한 발상이다) 하는 생각을 했다가 검색을 하며 django documentation에 다음과 같은 내용을 발견했다.: https://code.djangoproject.com/ticket/23646 #23646 (Add QuerySet.bulk_update() to to efficiently update many models) – Django..
2020.03.09 -
20200306 Django Migration Conflict관련
Django에서 migrate을 하다보면 model에 이미 migrate한 column들에 대해 다른 정보로 수정하거나 되돌리거나 할 필요가 있다. 그럴 때우선 migrate file을 찾고 다음과 같은 작업을 시행하면 된다. python manage.py migrate --tagging (migration 번호) 이러면 해당 migration으로 roll-back 된다. 그러고 나서 다시 python manage.py makemigrations -> pyhton manage.py migrate 해주면 된다.
2020.03.06