본문 바로가기
TIL WIL

20220511 TIL

by Youngin 2022. 5. 11.

Pymongo 사용시 인자를 2개 이상 받아오는 방법

- 많은 게시물들에서 {key:value}를 넣으면 된다고 하지만, 왜인지 작동을 안했는데 그래도 검색끝에 찾을 수 있었다.

.sort([("field1", pymongo.ASCENDING), ("field2", pymongo.DESCENDING)])

 기본적으로는 .sort("key", ASC/DESC )정보를 넣어주면 작동한다.

처음에는 간단히 값만 바꾸려고, 튜플이나 딕셔너리 형으로도 넣어보려고 시도도 해봤으나, 위의 방법으로 하면 잘 작동이 된다.

https://codesample-factory.tistory.com/219

리스트에 담긴 딕셔너리 정렬

 

key 속성 이용, lamba 함수 이용하는 방법도 있었지만,

새로운 라이브러리이기도 하고, 좀 더 직관적이라는 생각에 itemgetter를 사용했다.

from operator import itemgetter 를 상단에 선언해주고 사용해야 한다.

sorted(mylist, key=itemgetter('name', 'age')

이와 같은 방식으로 선언하여 사용했다

if sorting_status_receive == "new":
    comments = sorted(comments, key=itemgetter('date'), reverse=True)
elif sorting_status_receive == "old":
    comments = sorted(comments, key=itemgetter('date'))
elif sorting_status_receive == "like":
    comments = sorted(comments, key=itemgetter('count_like', 'date'), reverse=True)

 

찾아보니 이러한 방식도 있는듯 하다

# name, id 내림차순
pprint( sorted(orders, key=lambda x: (x['name'], x['id']), reverse=True) )
# name 내림차순, id 오름차순
pprint( sorted(orders, key=lambda x: (x['name'], -x['id']), reverse=True) )

https://zetawiki.com/wiki/Python_%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC_%EB%A6%AC%EC%8A%A4%ED%8A%B8_%EC%A0%95%EB%A0%AC

flask Blueprint

플라스크에서 URL과 함수의 매핑을 관리하기 위해 사용하는 도구(라우팅 함수 관리)

아래의 코드에서 blueprint 설정을 통해 joinpage 데코레이터가 적용된부분은 /login앞에 join이 적용된다고 생각하면 됨

route가 join/login으로 설정되는 것

 

from flask import Blueprint

join_page = Blueprint('join', __name__)
@join_page.route('/login')

 

a href="#" => 클릭시 페이지 상단으로 이동

a 태그 사용하다가 클릭할 때마다 페이지 상단에 올라가서, 알게되었음.

href="#" 제거하면 상단으로 올라가지 않고도, a태그 작동 시킬 수 있음

꽤 옛날 글이지만, 도움이 되었던 게시물

https://blog.outsider.ne.kr/223

 

파이썬에서의 오버로딩

오버로딩은 오버라이딩과 이름이 비슷한데, 오버로딩은 간단히 말하면 들어오는 인수에 맞게 다른 기능을 정의하는 것임.

그렇지만 파이썬에서 오버로딩 자체를 지원해주지는 않음.

함수 은닉을 하는 과정에서 오버로딩을 고려하다가 알게 되었음.

* 오버라이딩은 부모에서 작성한 내용을 다시 자식에서 재정의하는 것

 

TIL 

생각보다 기능구현이 오전중으로 일찍 끝났지만, 깃에서 헤맸다..

부가 기능인 댓글 정렬 기능을 만들었다. 좋아요순, 최신순, 오래된 순으로 정렬이 가능하도록. 처음에는 지난주 타임어택에도 시간순으로 정렬된것밖에 없어서 걱정이 많았지만 결국 해냈다.

좋아요 순으로 설정하는 것 때문에 기존 정의된 함수 내에 DB에서 불러오면서 정의하는 것 대신, 불러온후 데이터 전송 전에 정렬해주는 방법을 사용했다.

서버-클라이언트 통신이 아직도 어려워서 막상 내가 작성하려면 머리가 새햐얘지는데, 그나마 기존에 댓글 생성을 위한 함수가 정의되어있어서 그나마 완성할 수 있었다..

기능 구현이 거의 다 끝나게 되어서, MVC 패턴 적용을 시작해봤는데 쉽지 않다.

이 또한 반복을 통해서 앞으로 잘 익혀나갔으면 좋겠다.

 

'TIL WIL' 카테고리의 다른 글

20220513 TIL  (0) 2022.05.13
20220512 TIL  (0) 2022.05.12
220510 TIL  (0) 2022.05.10
220509 TIL  (1) 2022.05.09
WIL 3회차  (1) 2022.05.09