IT/파이썬 2021. 3. 10.
파이썬 변수 할당시 메모리 복사? 참조? copy deepcopy slicing
항상 궁금하던 건데, 파이썬은 막쓰기 좋은데 불안해~~~ 일단 변수에 다른 변수를 대입하는 형태로 하면 기본적으로는 포인터 교환처럼 같은 곳을 가리키는 포인터 값을 공유하는 느낌. from docs.python.org/ko/3/library/copy.html 파이썬에서 대입문은 객체를 복사하지 않고, 대상과 객체 사이에 바인딩을 만듭니다.가변(mutable) 컬렉션 또는 가변(mutable) 항목들을 포함한 컬렉션의 경우때로 컬렉션을 변경하지 않고 사본을 변경하기 위해 복사가 필요합니다. 요상하게 2가지 타입이 있어서 동작이 다르게 된다고 하니 그게 좀 문제 mutable , immutable 대충 내가 이해하기 위해 적어논 원칙, mutable 은 그냥 복사한 대로 그대로 사용만 되고, (즉 문자열같은..
IT/파이썬 2021. 3. 2.
파이썬 getattr 함수란? - 문자열 변수값과 동일한 객체 속성 불러오기
코드에서 getattr 이 있어서 간단하게 찾아봄 결론적으로 getattr(object, attr) 와 실제 object.attr 로 부르는 것이 동일하다는 뜻 For example, getattr(x, 'foobar') is equivalent to x.foobar. docs.python.org/3/library/functions.html#getattr Built-in Functions — Python 3.9.2 documentation Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabe..
IT/파이썬 2021. 2. 27.
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수 보통은 그냥 addWidget 을 써버리는데, 이게 추가하는 순서대로 놓아지니깐, 나중에 뒤에 추가하는 것을 앞으로 정렬하고 싶을때 또 인덱스를 찾아서 지우고 삽입하는 과정을 해야 하는 것으로 레퍼런스가 많이 되어 있다. 그냥 런타임에 바뀌는 것이 아니라면, 원하는 순서대로 자기가 넣을 수 있도로고 addWidget 대신에 insertWidget 함수를 사용하면 편리하다. 아래처럼 말이다. # 원래코드 # self.ui.horizontalLayout_5.addWidget(self.ui.btn_search) # index 정보를 넣을 수 있는 insertWidget 사용한 코드 self.ui.horizontalLayout_5.inse..
IT/파이썬 2021. 2. 26.
파이썬 pyside2 버튼 글자 왼쪽 정렬
pyside2 pyqt5에서 QPushButton에 이미지도 넣고 글자도 넣고, 왼쪽으로 정렬하고자 한다면, 아래 그림처럼 (qpushbutton icon left alignment text left alignment) 간단하게 스타일시트 하나 적용하면 된다. 버튼이름.setStyleSheet("QPushButton { text-align: left; }") 추가로, 아래 내용도 넣어 주면 좋을 듯 background-position: left; background-repeat: no-reperat; 이글은 질문에서 답을 찾아온 것입니다. 아래 질문은 더 어려운걸 요구하셔서 ㅋㅋ 이미지는 왼쪽 정렬, 글자는 가운데 정렬 머 우리는 간단하게 통일하자고~~ stackoverflow.com/questions/..
IT/파이썬 2021. 2. 24.
파이썬 pyside2 QSplitter 한쪽은 fix 한쪽은 expand 되도록 수정하기
QSplitter 를 하나 놓아서, 아래 그림의 1, 2번 프레임들이 자유롭게 사이즈를 조정할 수 있게 구성했다. 앗 그런데, 창을 키우니깐 비슷한 비율로 크기가 커지는게 아닌가? 나는 1번창은 조정한 그대로 두고, 창 사이즈가 변경되면 2번만 조정되도록 하고 싶은데.. 보통의 layout 처럼 Qt Designer 상에서 QSplitter 속성에 layoutStretch 를 조정하는 부분이 없어 잠시 당황. (아래아래 그림 참고) 결국 코드로 그것을 구현할 수 밖엔 없었다..(적어도 내가 아는 범위에서는 ㅋㅋ) 코드는 아래와 같다. splitter인스턴스이름.setStretchFactor( 0, 0 ) splitter인스턴스이름.setStretchFactor( 1, 1 ) 앞에 인자는 인덱스고, 뒤에 ..
IT/파이썬 2021. 2. 19.
파이썬 flask Jinja2: Check If Variable – Empty | Exists | Defined | True
이거 중요함. 체크안하고 render_template 함수에서 막 쓰면, 자꾸 선언되어 있지 않다고 오류가 막남... variable is undefined? 이런류의 에러, Exception 발생 들어올 수 도 있고 안 들어 올 수 도 있는 변수는 쓰기 전에 반드시 체크하고 사용하기 바람. {% if variable is defined %} variable is defined
IT/파이썬 2021. 2. 18.
파이썬 bool 함수로 bool 으로 변환 내용정리
착각하고 있던 것이 있어서, bool 이 그냥 0, 1 과 자동으로 변환될 줄 알았는데 문자 '0' 은 True 값으로 변환이 되네. 관련글 내용 참조 False >>> bool(0) False >>> bool(0.0) False >>> bool('') False >>> bool("") False True >>> bool(1) True >>> bool(123.123) True >>> bool("False") True >>> bool("0") True wikidocs.net/22202 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net BJ. Roberto Nickson 님의 사진, 출처: Pexels
IT/파이썬 2021. 2. 17.
파이썬 Mongoengine 에서 Document 삭제 방법 flask
파이썬 Mongoengine 에서 Document 삭제 방법 flask flask mongoengine 을 쓴다면 아래 방법으로 document 를 삭제할 수 있다. delete()로 간단하게 지울 수 있다. lunch = Food.objects.first() // Get a single 'Food' instance lunch.delete() // Delete it! 혹은 바로 찾아서 지우는 것도 가능하다. Food.objects(type="snacks").delete() Mongo shell 에서 지우려면 아래와 같이 수행하면 된다. > db.food.remove( { type : "snacks" } ) > db.monsters.deleteOne({ name: 'Zerp' }); 이 모든 내용은 아래 ..
IT/파이썬 2021. 2. 17.
파이썬 실행파일 만들기 - pyinstaller exe 실행파일
pyinstaller 로 실행파일 만드는 예제는 엄청 많다. 그중에 맘에 드는 블로그 글에서 핵심만 가져오자. 처음 만들때는 아래 명령으로 > pyinstaller -F main.py 두번째 부터는 이미 만들어진 main.spec 을 수정하면서 아래 명령으로 > pyinstaller -F main.spec 정상적으로 수행되면 작업폴더 내에 dist/ 아래에 실행파일이 생성됨을 확인해 볼 수 있다. 좀더 자세한 내용은 원본글을 존중하는 의미에서 아래 글로 방문해 주세요~~ developer-mistive.tistory.com/59 [pyinstaller] 파이썬 실행파일 만들어주는 pyinstaller 활용백서 해당 포스팅은 windows10 64bit / python 3.6 / IDE: pycharm /..
IT/파이썬 2021. 2. 15.
파이썬 현재 시간 정보 가져오기
How to get current date and time in Python 현재 시간 정보를 가져오는 파이썬 함수는 다들 알고 있듯이 > datetime.datetime.now() from datetime import datetime # datetime object containing current date and time now = datetime.now() print("now =", now) # dd/mm/YY H:M:S dt_string = now.strftime("%d/%m/%Y %H:%M:%S") print("date and time =", dt_string) 국가 시간대를 적용하고 싶다면 아래와 같이 사용 > datetime.datetime.now(datetime.timezone.utc) f..
IT/파이썬 2021. 2. 14.
파이썬 flask REST API JSON 과 HTML form 처리 동시에 하기
flask REST 형태로 JSON API 서버를 만들다 보니, 음 그냥 HTML을 통해 동일한 API 함수를 사용하고 싶어진다. 머 보내기 전에 받아서 JSON 변경해서 api 함수를 콜하는 방식의 proxy 같은 것을 써도 되지만 하나의 기능은 한 군데 구현하면 좋을 듯 해서 찾아보니... 좋은 함수가 있다. 이해하기도 쉽게 이름도 is_json 이다. Request 로 들어온 데이터가 JSON 인 경우와, 아닌 경우를 구분해 낼 수 있으니 원하는 형태의 구현이 가능할 듯 싶다. 간단하게 사용하고 있는 코드 일부만 가져와 보자. if request.is_json : body = request.get_json() print(body) retids = [] for item in body: customer..
IT/파이썬 2021. 2. 14.
파이썬 mongodb mongoengine 데이터 가져오기
mongoengine 에서 데이터 즉, Document 단위의 데이터를 가져오려면 기본적으로 클래스명.obects 를 하면 전체 Document 를 가져올 수 있다. 이전에 살펴본 대로, 여기서 필터링을 통해 원하는 조건의 데이터만 가져오려면 targetCollection = Customer.objects(id=customerid) 이렇게 조건식을 objects 에 매개변수로 넘겨주면 된다. 대부분 리스트로 리턴하게 되는데 조건에 맞는 하나의 데이터를 가져오려면 혹은 unique ID 를 조건으로 주고 하나의 데이터만 딱 가져오려면 그냥 obect 에 조건식을 주지 말고 하나 더 단어를 쓰자 customer = Customer.objects.get(id=body["customerid"]) 클래스명.obj..